yiisoft / yii2-composer
The composer plugin for Yii extension installer
Fund package maintenance!
Open Collective
yiisoft
Tidelift
Installs: 22 960 566
Dependents: 77
Suggesters: 0
Security: 0
Stars: 86
Watchers: 23
Forks: 30
Open Issues: 0
Type:composer-plugin
Requires
- composer-plugin-api: ^1.0 | ^2.0
Requires (Dev)
- composer/composer: ^1.0 | ^2.0@dev
- phpunit/phpunit: <7
This package is auto-updated.
Last update: 2024-11-17 11:36:15 UTC
README
Yii 2 Composer Installer
This is the composer installer for Yii framework 2.0 extensions.
It implements a new composer package type named yii2-extension
,
which should be used by all Yii 2 extensions if they are distributed as composer packages.
For license information check the LICENSE-file.
Usage
The Yii 2 Composer Installer is automatically installed with when installing the framework via Composer.
To use Yii 2 composer installer, simply set the package type
to be yii2-extension
in your composer.json
,
like the following:
{ "type": "yii2-extension", "require": { "yiisoft/yii2": "~2.0.0" }, ... }
You may specify a bootstrapping class in the extra
section. The init()
method of the class will be executed each time
the Yii 2 application is responding to a request. For example,
{ "type": "yii2-extension", ..., "extra": { "bootstrap": "yii\\jui\\Extension" } }
The Installer
class also implements a static method postCreateProject()
that can be called after
a Yii 2 project is created, through the post-create-project-cmd
composer script.
A similar method exists for running tasks after each composer install
call, which is postInstall()
.
These methods allow to run other Installer
class methods like setPermission()
or generateCookieValidationKey()
,
depending on the corresponding parameters set in the extra
section of the composer.json
file.
For example,
{ "name": "yiisoft/yii2-app-basic", "type": "project", ... "scripts": { "post-create-project-cmd": [ "yii\\composer\\Installer::postCreateProject" ], "post-install-cmd": [ "yii\\composer\\Installer::postInstall" ] }, "extra": { "yii\\composer\\Installer::postCreateProject": { "setPermission": [ { "runtime": "0777", "web/assets": "0777", "yii": "0755" } ] }, "yii\\composer\\Installer::postInstall": { "copyFiles": [ { "config/templates/console-local.php": "config/console-local.php", "config/templates/web-local.php": "config/web-local.php", "config/templates/db-local.php": "config/db-local.php", "config/templates/cache.json": ["runtime/cache.json", true] } ], "generateCookieValidationKey": [ "config/web-local.php" ] } } }