Cascade Core  v0.12-1-g22cbbeb
 All Classes Namespaces Functions Variables Pages
Composer configuration
Note
Examples in this page are available in the core/doc/examples/ directory.

Application

The root composer.json must:

Everything else is as usual.

{
"name": "vendor/site",
"description": "Web site at example.com",
"license": "Apache-2.0",
"authors": [
{
"name": "Author Name",
"email": "author@example.com"
}
],
"repositories": [
{ "type": "composer", "url": "https://akvarko.frozen-doe.net/composer/" }
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"cascade/core": "dev-master",
"cascade/admin": "dev-master",
"cascade/block_editor": "dev-master",
"cascade/duf": "dev-master",
"cascade/git": "dev-master",
"cascade/smalldb": "dev-master"
},
"autoload": {
"psr-4": { "Vendor\\Site\\": "app/class/" }
},
"config": {
"bin-dir": "bin",
"vendor-dir": "lib",
"prepend-autoloader": false
},
"extra": {
}
}

See examples/composer.app.json.

Plugins

Each plugin is also Composer package, so it has its own composer.json. The package is of type cascade-plugin and it must require cascade/composer-plugin package. It can require any other plugin or 3rd party package as well.

In addition, the plugin name must be set in extra.plugin option. This plugin name is the same as plugin directory.

Like the core and the application, the plugin also has PSR-4 autoloader directed to its class/ directory.

{
"name": "vendor/example",
"type": "cascade-plugin",
"description": "Description of vendor/example",
"license": "Apache-2.0",
"authors": [
{
"name": "Author Name",
"email": "author@example.com"
}
],
"extra": {
"plugin": "example"
},
"autoload": {
"psr-4": { "Vendor\\Example\\": "class/" }
},
"require": {
"cascade/composer-plugin": ">=1.1"
}
}

See examples/composer.plugin.json.