nuvoleweb / drupal-component-scaffold
Drupal模块和主题的Composer插件脚手架。
0.1.0
2017-10-09 20:31 UTC
Requires
- php: >=5.6
- composer-plugin-api: ^1.0.0
- composer/installers: ^1.2
- cweagans/composer-patches: ~1.0
- drupal-composer/drupal-scaffold: ^2.3
Requires (Dev)
- composer/composer: dev-master
- drupal/coder: ^8.2
- phpro/grumphp: ^0.11.3
- phpunit/phpunit: ~5
This package is auto-updated.
Last update: 2024-09-11 14:43:26 UTC
README
Drupal组件脚手架 是一个 Composer插件,它帮助Drupal 8项目维护者享受更精简的开发工作流程:在模块和主题上的工作将像在处理任何其他现代PHP组件一样。
一旦安装了此插件,就可以
- 在
require-dev
中指定所有项目的开发依赖项,如Drupal核心、模块、主题或任何需要的测试库(PHPUnit、PHPSpec、Behat等)。 这里有一个示例。 - 通过运行
composer install
,在项目目录内构建一个功能齐全的Drupal站点,只需捆绑列出的所有依赖项即可。 - 在本地开发和持续集成管道上拥有相同的设置。这也导致了 更干净的CI配置文件。
该插件利用了优秀的 Drupal Scaffold 项目,并在其主要脚手架任务运行后(如果运行)触发。
用法
如下通过Composer要求
$ composer require nuvoleweb/drupal-component-scaffold --dev
列出所有依赖项(核心版本、模块等)并运行
$ composer update
例如,以下 composer.json
{ "name": "drupal/my_module", "type": "drupal-module", "require": { "drupal/ds": "~3" }, "require-dev": { "nuvoleweb/drupal-component-scaffold": "*", "drush/drush": "~8.0", "drupal/core": "~8", "drupal/panels": "~4", }, "repositories": [ { "type": "composer", "url": "https://packages.drupal.org/8" } ], "extra": { "installer-paths": { "web/core": ["type:drupal-core"], "web/modules/contrib/{$name}": ["type:drupal-module"] } } }
运行 composer install
将导致
.
├── web
│ ├── autoload.php
│ ├── core
│ ├── modules
│ │ ├── contrib
│ │ │ └── panels
│ │ └── custom
│ │ └── my_module (symlink to project root)
│ └── sites
│ ├── default
│ │ ├── default.services.yml
│ │ ├── default.settings.php
│ │ ├── drushrc.php
│ │ └── settings.local.php
│ ├── development.services.yml
│ ├── example.settings.local.php
│ └── example.sites.php
├── vendor
├── composer.json
├── composer.lock
├── my_module.info.yml
└── my_module.module
配置
构建目录将由 installer-paths
派生,请确保您已指定希望安装核心、模块等的路径
{ "extra": { "installer-paths": { "web/core": ["type:drupal-core"], "web/modules/contrib/{$name}": ["type:drupal-module"] } } }
此外,所有 Drupal Scaffold 选项仍然适用,更多内容请参阅项目文档。
可以通过运行以下命令在任何时候触发组件脚手架
$ composer drupal-component-scaffold
设置PHPUnit测试
要设置 PHPUnit,请使用以下 phpunit.xml.dist
模板
<?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="vendor/autoload.php" backupGlobals="true" colors="true" > <php> <ini name="error_reporting" value="32767"/> <var name="namespaces" value=""/> <ini name="memory_limit" value="-1"/> <env name="SIMPLETEST_DB" value="mysql://user:pass@host/database"/> </php> <testsuites> <testsuite> <directory>./tests/</directory> </testsuite> </testsuites> </phpunit>
内部工作原理
当触发时,该插件将
- 设置 Composer Installers 路径。
- 注册一个后 Drupal Scaffold 事件处理程序。
在Drupal Scaffold完成后,插件将
- 在
./web/modules/custom
下准备一个自定义项目目录。 - 使
./web/sites/default
可写。 - 在
./web/modules/custom/my_module
(或./web/themes/custom/my_theme
)下创建您的项目的符号链接。 - 在
./web/sites/default/drushrc.php
下设置默认Drush配置文件。 - 确保在
./web/sites/development.services.yml
中禁用Twig缓存。 - 在
./web/sites/default/settings.local.php
中设置本地开发设置。 - 使用 kernel-test-base.patch 修补Drupal核心,以便内核测试可以顺利运行。
注意:上面的本地开发设置文件默认禁用,要启用它,请在您的 settings.php
文件中取消注释相关行并清除缓存。