Cecil logo Cecil
What's on this page

new:extension

Creates the skeleton of an extension class in the extensions directory, and displays the configuration to enable it.

Usage

Description:
  Creates a new extension

Usage:
  new:extension [options] [--] [<path>]

Arguments:
  path                       Use the given path as working directory

Options:
  -t, --type=TYPE            Extension type (generator, twig, postprocessor, subscriber, plugin)
      --name=NAME            Extension class name (e.g.: "MyGenerator")
      --namespace=NAMESPACE  Root namespace of the extension (e.g.: "MySite")
  -f, --force                Override the file if already exist
  -h, --help                 Display help for the given command. When no command is given display help for the list command
      --silent               Do not output any message
  -q, --quiet                Only errors are displayed. All other output is suppressed
  -V, --version              Display this application version
      --ansi|--no-ansi       Force (or disable --no-ansi) ANSI output
  -n, --no-interaction       Do not ask any interactive question
  -v|vv|vvv, --verbose       Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  The new:extension command creates the skeleton of an extension class in the extensions directory,
  and displays the configuration to enable it.
  If you run this command without any options, it will ask you for the extension type, name and namespace.

    cecil.phar new:extension
    cecil.phar new:extension --type=generator --name=Database --namespace=MySite

  Available types: generator, twig, postprocessor, subscriber and plugin.

  To override an existing extension, run:

    cecil.phar new:extension --force

Types

Type Class Configuration
generator <namespace>\Generator\<name> (page generator) pages.generators
twig <namespace>\Twig\<name> (Twig extension) layouts.extensions
postprocessor <namespace>\PostProcessor\<name> (output post-processor) output.postprocessors
subscriber <namespace>\Subscriber\<name> (build events subscriber) extensions.subscribers
plugin <namespace>\<name> (plugin) extensions.plugins

The class is created in extensions/<namespace path>/. The Cecil namespace is reserved and can't be used.