1
0
Fork 0

Merge branch 'jeskew-feature/document-need-to-require-autoloader-in-script-hooks'

* jeskew-feature/document-need-to-require-autoloader-in-script-hooks:
  "No files" was inaccurate; amend to specify "no files except"
  House style requires concatenation in examples
  Reiterate the disclaimer in the context of callbacks
  Add a line and example to the documentation covering the need to require the autoloader file in order to use autoloaded files
pull/4356/head
Rob Bast 2015-08-12 13:50:07 +02:00
commit a4fb4dbcea
1 changed files with 16 additions and 1 deletions

View File

@ -82,6 +82,10 @@ For any given event:
and command-line executable commands. and command-line executable commands.
- PHP classes containing defined callbacks must be autoloadable via Composer's - PHP classes containing defined callbacks must be autoloadable via Composer's
autoload functionality. autoload functionality.
- Callbacks can only autoload classes from psr-0, psr-4 and classmap
definitions. If a defined callback relies on functions defined outside of a
class, the callback itself is responsible for loading the file containing these
functions.
Script definition example: Script definition example:
@ -96,6 +100,9 @@ Script definition example:
"MyVendor\\MyClass::warmCache", "MyVendor\\MyClass::warmCache",
"phpunit -c app/" "phpunit -c app/"
], ],
"post-autoload-dump": [
"MyVendor\\MyClass::postAutoloadDump"
],
"post-create-project-cmd": [ "post-create-project-cmd": [
"php -r \"copy('config/local-example.php', 'config/local.php');\"" "php -r \"copy('config/local-example.php', 'config/local.php');\""
] ]
@ -122,6 +129,14 @@ class MyClass
// do stuff // do stuff
} }
public static function postAutoloadDump(Event $event)
{
$vendorDir = $event->getComposer()->getConfig()->get('vendor-dir');
require $vendorDir . '/autoload.php';
some_function_from_an_autoloaded_file();
}
public static function postPackageInstall(PackageEvent $event) public static function postPackageInstall(PackageEvent $event)
{ {
$installedPackage = $event->getOperation()->getPackage(); $installedPackage = $event->getOperation()->getPackage();