Ver Fonte

Update scripts docs

Jordi Boggiano há 13 anos atrás
pai
commit
39ab5017aa
2 ficheiros alterados com 66 adições e 70 exclusões
  1. 66 0
      doc/faqs/scripts.md
  2. 0 70
      doc/faqs/triggers.md

+ 66 - 0
doc/faqs/scripts.md

@@ -0,0 +1,66 @@
+# Scripts
+
+## What is a script?
+
+A script is a callback (defined as a static method) that will be called
+when the event it listens on is triggered.
+
+**Scripts are only executed on the root package, not on the dependencies
+that are installed.**
+
+
+## Event types
+
+- **pre-install-cmd**: occurs before the install command is executed.
+- **post-install-cmd**: occurs after the install command is executed.
+- **pre-update-cmd**: occurs before the update command is executed.
+- **post-update-cmd**: occurs after the update command is executed.
+- **pre-package-install**: occurs before a package is installed.
+- **post-package-install**: occurs after a package is installed.
+- **pre-package-update**: occurs before a package is updated.
+- **post-package-update**: occurs after a package is updated.
+- **pre-package-uninstall**: occurs before a package has been uninstalled.
+- **post-package-uninstall**: occurs after a package has been uninstalled.
+
+
+## Defining scripts
+
+Scripts are defined by adding the `scripts` key to a project's `composer.json`.
+
+They are specified as an array of classes and static method names.
+
+The classes used as scripts must be autoloadable via Composer's autoload
+functionality.
+
+Script definition example:
+
+```json
+{
+    "scripts": {
+        "post-update-cmd": "MyVendor\\MyClass::postUpdate",
+        "post-package-install": ["MyVendor\\MyClass::postPackageInstall"]
+    }
+}
+```
+
+Script listener example:
+
+```php
+<?php
+
+namespace MyVendor;
+
+class MyClass
+{
+    public static function postUpdate($event)
+    {
+        // do stuff
+    }
+
+    public static function postPackageInstall($event)
+    {
+        $installedPackage = $event->getOperation()->getPackage();
+        // do stuff
+    }
+}
+```

+ 0 - 70
doc/faqs/triggers.md

@@ -1,70 +0,0 @@
-# Triggers
-
-## What is a trigger?
-
-A trigger is an event that runs a script in a static method, defined by a 
-project. This event is raised before and after each action (install, update).
-
-
-## Where are the event types defined?
-
-It is in the constant property in `Composer\Trigger\TriggerEvents` class.
-
-
-## How is it defined?
-
-It is defined by adding the `triggers` key in the `extra` key to a project's
-`composer.json` or package's `composer.json`.
-
-It is specified as an array of classes with her static method,
-in associative array define the event's type.
-
-The PSR-0 must be defined, otherwise the trigger will not be triggered.
-
-For any given project:
-
-```json
-{
-    "extra": {
-        "triggers": {
-            "post_install": [
-                "MyVendor\\MyRootPackage\\MyClass::myStaticMethod"
-            ],
-            "post_update": [
-                "MyVendor\\MyRootPackage\\MyClass::myStaticMethod2"
-            ]
-        }
-    },
-    "autoload": {
-        "psr-0": {
-            "MyVendor\\MyRootPackage": "my/folder/path/that/contains/triggers/from/the/root/project"
-        }
-    }
-}
-```
-
-Trigger Example:
-
-```php
-<?php
-namespace MyVendor\MyRootPackage;
-
-use Composer\Trigger\TriggerEvent;
-
-class MyClass
-{
-    public static function myStaticMethod(TriggerEvent $event)
-    {
-        // code...
-    }
-    
-    public static function myStaticMethod2(TriggerEvent $event)
-    {
-        // code...
-    }
-}
-```
-
-## Informations:
-
-A declared trigger with non existent file or without registered namespace will be ignored.