drubb / drupal-simple
为 Drupal 8 项目和 Composer 提供的项目模板
Requires
- cweagans/composer-patches: ^1.6
- drupal-composer/drupal-scaffold: ^2.5
- drupal/console: ^1.0
- drupal/core: ^8.0
- drush/drush: ^9.0
- hirak/prestissimo: ^0.3
- oomphinc/composer-installers-extender: ^1.1
- zaporylie/composer-drupal-optimizations: ^1.0
Conflicts
This package is auto-updated.
Last update: 2024-09-29 05:14:38 UTC
README
该项目模板应提供使用 Composer 管理站点依赖的起点。基于优秀的 Drupal Composer 项目,它引入了一些修改
- 移除了 Behat 或 PHPUnit 等开发依赖,您可以根据需要自行添加。
- 公共和私有文件放置在 web 根目录之外。
- 配置同步文件夹放置在 web 根目录之外。
- 在安装过程中,使用本地设置文件来指向修改后的文件和配置位置。
- 默认创建 "contrib" 和 "custom" 文件夹,用于模块、主题、库、配置文件和 Drush 插件。
- 添加 Composer Parallel Install 插件以加快下载速度。
- 添加 Composer Merge 插件以管理自定义模块的依赖关系。
- 添加 Asset Packagist 仓库以管理 npm / bower 依赖。
用法
首先您需要 安装 composer。
之后您可以创建项目
composer create-project -s dev drubb/drupal-simple some-dir
将 'some-dir' 替换为您项目根目录,或使用 '.' 代表当前目录。
如果您收到 Drupal 核心版本过时的错误,请检查您的 php 扩展。最新的核心版本可能需要额外的扩展。以下是如何检查的示例
composer why-not drupal/core:8.6.1
模板做了什么?
在安装指定的 composer.json
时,会处理一些任务
- 当前稳定的 Drupal 8 版本将安装在
web
目录中。 - 实现了自动加载器,使用
vendor/autoload.php
中的生成的 composer 自动加载器,而不是 Drupal 提供的自动加载器(web/vendor/autoload.php
)。 - 模块(类型为
drupal-module
的包)将放置在web/modules/contrib/
- 主题(类型为
drupal-theme
的包)将放置在web/themes/contrib/
- 配置文件(类型为
drupal-profile
的包)将放置在web/profiles/contrib/
- 库(类型为
drupal-library
的包)将放置在web/libraries/contrib/
- Drush 插件(类型为
drupal-drush
的包)将放置在drush/contrib
- 创建
settings.php
、settings.local.php
和services.yml
的默认可写版本。 - 创建
sites/default/files
目录,使用符号链接指向files/public
- 在本地安装最新版本的 Drush,以便在
vendor/bin/drush
下使用。 - 在本地安装最新版本的 Drupal Console,以便在
vendor/bin/drupal
下使用。
更新 Drupal 核心
此项目将尝试保持您的所有 Drupal 核心文件都是最新的;项目 drupal-composer/drupal-scaffold 用于确保每次 drupal/core 更新时,您的支架文件都会更新。如果您自定义了任何“支架”文件(例如 .htaccess 或 robots.txt),那么在 Drupal 核心的新版本发布中,如果有任何修改的文件被更新,您可能需要解决冲突。
按照以下步骤更新您的核心文件(在项目根目录下运行以下命令):
- 运行
composer update drupal/core --with-dependencies
更新 Drupal 核心和其依赖。 - 运行
git diff
检查是否有任何脚手架文件已更改。检查文件以查看任何更改,并将自定义修改恢复到例如.htaccess
或robots.txt
。将您的更改提交到 git。
安装贡献模块
您可以使用 composer 的 require 命令添加贡献模块。示例:
composer require drupal/devel
在项目根目录下运行此命令。
更新贡献模块
您可以使用 composer 的 update 命令更新贡献模块。示例:
composer update drupal/devel --with-dependencies
在项目根目录下运行此命令。
使用 Composer 与自定义模块
您可以通过以下步骤将 Composer 支持添加到您的自定义模块(在模块文件夹中运行以下命令):
- 在模块文件夹中添加一个基本的 composer.json 文件:
composer init --n
- 为您的自定义模块添加依赖:
composer require mpdf/mpdf --no-update
在这个例子中,自定义模块使用了 mpdf PHP 库。标志 '--no-update' 通知 Composer 不要将库下载到自定义模块的文件夹中,因为我们需要将其存储在我们的项目的中央 vendor 文件夹中。Composer Merge 插件负责此操作,我们只需更新我们的主要 Composer 清单(composer.json)。
composer update --lock
在项目根目录下运行此命令。这将添加我们的自定义模块的依赖到主要 Composer 清单中。
我如何应用下载模块的补丁?
如果您需要应用补丁,您可以使用 composer-patches 插件。
要将补丁添加到 Drupal 模块 foobar,请将补丁部分插入到项目根目录的 composer.json 的 extra 部分
"extra": { "patches": { "drupal/foobar": { "Patch description": "URL to patch" } } }