bangpound / drupal-bridge
Symfony Drupal bridge
Installs: 207
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
pkg:composer/bangpound/drupal-bridge
Requires (Dev)
- composer/composer: ~1.0@dev
- guzzle/guzzle: ~3.8
- symfony/filesystem: ~2.5
Suggests
- bangpound/drupal-bootstrap: Replace Drupal 7 bootstrap with a Pimple container
- bangpound/legacy-php-http-kernel: Run bad controllers on the Symfony kernel
- drufony/drufony: Drupal inside Symfony Standard Edition
- drufony/druplex: Drupal inside Silex
- guzzle/guzzle: Replace Drupal's HTTP function with Guzzle
- symfony/class-loader: Replace Drupal's class registry with Symfony's class loader
This package is auto-updated.
Last update: 2022-02-01 12:33:26 UTC
README
Composer
In your composer.json, define the Drupal root relative to the composer.json file.
drupal-root is the only option required for the Composer integration.
{
"extra": {
"drupal-root": "docroot/"
}
}
The Composer integration works well with composer/installers but this is not an
explicit dependency. When composer/installers is available, you can install Drupal
modules, themes, profiles and Drush plugins.
The snippet below is an example based on the composer/installers documentation and
depends on drupal-root being set to docroot/ (as above).
{
"extra": {
"installer-paths": {
"docroot/profiles/special/modules/custom/amazing": [
"somebody/amazing-module"
],
"docroot/profiles/special/": [
"somebody/special-profile"
],
"docroot/sites/all/modules/{$name}/": [
"type:drupal-module"
],
"docroot/sites/all/themes/{$name}/": [
"type:drupal-theme"
],
"docroot/sites/all/libraries/{$name}/": [
"type:drupal-library"
],
"docroot/profiles/{$name}/": [
"type:drupal-profile"
],
"docroot/sites/all/drush/{$name}/": [
"type:drupal-drush"
]
}
}
}
The name of the directory where a profile is installed apparently must be named precisely for the same as its info file.
Drupal install
{
"repositories": [
{
"type": "package",
"package": {
"name": "drupal/drupal",
"version": "7.x-dev",
"dist": {
"type": "tar",
"url": "http://ftp.drupal.org/files/projects/drupal-7.x-dev.tar.gz"
},
"source": {
"type": "git",
"url": "git://git.drupal.org/project/drupal.git",
"reference": "7.x"
},
"bin": [
"scripts/drupal.sh",
"scripts/password-hash.sh"
],
"require": {
"php": ">=5.2.4",
"ext-date": "*",
"ext-dom": "*",
"ext-filter": "*",
"ext-gd": "*",
"ext-hash": "*",
"ext-json": "*",
"ext-pcre": "*",
"ext-PDO": "*",
"ext-session": "*",
"ext-SimpleXML": "*",
"ext-SPL": "*",
"ext-xml": "*"
}
}
}
],
"require": {
"drupal/drupal": "~7.0@dev",
"drufony/drupal-bridge": "~1.0@dev"
},
"extra": {
"drupal-install": {
"symlink": true,
"relative": true
}
},
"scripts": {
"create-sites-dir": "Bangpound\\Bridge\\Drupal\\Composer\\ScriptHandler::createSitesDir",
"post-install-cmd": [
"Bangpound\\Bridge\\Drupal\\Composer\\ScriptHandler::prepareDrupalRoot"
],
"post-update-cmd": [
"Bangpound\\Bridge\\Drupal\\Composer\\ScriptHandler::prepareDrupalRoot"
]
}
}
When you define drupal/drupal as a dependency, the post-install-cmd and
post-update-cmd scripts will (by default) create a relative symlink of the includes,
misc, modules, and themes directory. The profiles directory is left out so that
these can be managed by the composer/installers plugin for Drupal profile projects.
Core profiles
The core profile for standard and minimal installs can be obtained from the
Drufony package repository. Just merge this snippet into your composer.json file. Also
configure your installer-paths as described above so that the profiles are installed
into the Drupal root's profiles directory.
{
"repositories": [
{
"type": "composer",
"url": "http://drufony.github.io/packages.json"
}
],
"require": {
"drupal/minimal": "7.*@dev",
"drupal/standard": "7.*@dev"
}
}
Drush command
{
"require": {
"drush/drush": "dev-master"
},
"scripts": {
"drush": "Bangpound\\Bridge\\Drupal\\Drush\\Composer\\ScriptHandler::drushCommand"
}
}
composer drush updatedb