X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=vendor%2Fdrush%2Fdrush%2Fdocs%2Fgenerators.md;fp=vendor%2Fdrush%2Fdrush%2Fdocs%2Fgenerators.md;h=ac961d1dcf548714878b12ee17e21c1304aceb3c;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=0000000000000000000000000000000000000000;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/vendor/drush/drush/docs/generators.md b/vendor/drush/drush/docs/generators.md new file mode 100644 index 000000000..ac961d1dc --- /dev/null +++ b/vendor/drush/drush/docs/generators.md @@ -0,0 +1,29 @@ +Overview +========================== +Generators jump start your coding by building all the boring boilerplate code for you. After running a `drush generate [foo]` command, you have a guide for where to insert your custom logic. + +Drush's generators reuse classes provided by the excellent [Drupal Code Generator](https://github.com/Chi-teck/drupal-code-generator) project. See its [Commands directory](https://github.com/Chi-teck/drupal-code-generator/tree/master/src/Command/Drupal_8) for inspiration. + +Writing Custom Generators +========================== +Drupal modules may supply their own Generators, just like they can supply Commands. + +See [Woot module](https://github.com/drush-ops/drush/blob/master/tests/resources/modules/d8/woot), which Drush uses for testing. Specifically, + + 1. Write a class similar to [ExampleGenerator](https://github.com/drush-ops/drush/tree/master/tests/resources/modules/d8/woot/src/Generators/). Implement your custom logic in the interact() method. Typically this class is placed in the src/Generators directory. + 1. Add a .twig file to the same directory. This template specifies what gets output from the generator. + 1. Add your class to your module's drush.services.yml file ([example](https://github.com/drush-ops/drush/blob/master/tests/resources/modules/d8/woot/drush.services.yml)). Use the tag `drush.generator` instead of `drush.command`. + 1. Perform a `drush cache-rebuild` to compile your drush.services.yml changes into the Drupal container. + +Global Generators +============================== + +Generators that don't ship inside Drupal modules are called 'global' generators. In general, its better to use modules to carry your generators. If you still prefer using a global generator, please note: + +1. The file's namespace should be `\Drush\Generators`. +1. The filename must be have a name like Generators/FooGenerator.php + 1. The prefix `Foo` can be whatever string you want. The file must end in `Generator.php` + 1. The enclosing directory must be named `Generators` +1. The directory above Generators must be one of: + 1. A Folder listed in the 'include' option. include may be provided via config or via CLI. + 1. ../drush, /drush or /sites/all/drush. These paths are relative to Drupal root. \ No newline at end of file