thinkshout / drupal-project
ThinkShout 为 Drupal 8 项目提供的 composer 项目模板
Requires
- php: ^7.4
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.6
- dmore/behat-chrome-extension: ^1.3
- drupal/admin_toolbar: ^2.2
- drupal/config_split: ^1.3
- drupal/core-composer-scaffold: ^9.0.0
- drupal/core-recommended: ^9.0.0
- drupal/editor_advanced_link: ^1.4
- drupal/email_registration: ^1.0-rc5
- drupal/fast_404: ^2.0@alpha
- drupal/field_group: ^3.0-beta1
- drupal/honeypot: ^1.27
- drupal/inline_entity_form: ^1.0-rc1
- drupal/linkit: ^5.0.0-beta7
- drupal/menu_block: ^1.5
- drupal/metatag: ^1.5
- drupal/pathauto: ^1.2
- drupal/redirect: ^1.2
- drupal/redis: ^1.0
- drupal/simple_sitemap: ^4.1
- drupal/smart_trim: ^1.1
- pantheon-systems/drupal-integrations: ^8
- webflo/drupal-finder: ^1.2
- webmozart/path-util: ^2.3
Requires (Dev)
- drupal/coder: ^8.3
- drupal/config_suite: ^2.0
- drupal/devel: ^4.1
- drupal/drupal-extension: ^4.1
- drupal/field_tools: ^1.0@alpha
- drupal/stage_file_proxy: ^1.2
- thinkshout/robo-drupal: ^3.1
- zaporylie/composer-drupal-optimizations: ^1.2
Conflicts
- dev-8.x-pantheon
- 8.x-dev
- 7.x-dev
- dev-build-project-customizations
- dev-composer-scaffold-example
- dev-core_patch_update
- dev-pantheon-quicksilver
- dev-scaffold
- dev-prod-branch
- dev-compile_css
- dev-82-allow-php-7-3
- dev-update-plugin-lazy-load-patch
- dev-prod-branch-test
- dev-ajax_timeout
- dev-add_field_tools_dev
- dev-ticket-templates
- dev-improved-memory
- dev-drupal-recommends-update
- dev-pr-template
- dev-no-symfony
- dev-dotenv
- dev-drupal-composer-8.x
- dev-71-dumb-404s
- dev-encp_updates
- dev-8.x-upstream
- dev-minimal-config
- dev-issue-53
- dev-57-update-circle-readme
- dev-remove-page-cache
- dev-database-source-of-truth
- dev-extensions_cleanup
- dev-dev-settings
- dev-8.x-pantheon-core-8.5.0
- dev-latest-d8-drop
- dev-update-patches
- dev-circleci-2
- dev-issue-5-module-review
- dev-updates
- dev-fixing-build
- dev-config_installer
- dev-base-install-with-media
- dev-hash-salt
This package is auto-updated.
Last update: 2024-09-08 03:47:27 UTC
README
您不应再使用此仓库创建新项目。请从 https://library.thinkshoutlabs.com/articles/new-drupal-site-setup 开始。
:::::::::::::::::::::: 以下代码可自定义 :::::::::::::::::::::
开发设置
这是一个使用 robo taskrunner 构建的 Drupal 9 网站。使用 git clone
将此仓库直接克隆到 ~/Sites
目录中,然后即可开始。
此网站使用 PHP 7.4:请确保您的本地环境正在运行 PHP 7.4(您可以使用 php --version
命令进行验证)。
首先,您需要 安装 composer。
brew install composer
接下来,如果还没有,将 ./vendor/bin
添加到您的 PATH 变量中,位于 PATH 变量的开头。
使用 echo $PATH
检查。
使用 export PATH=./vendor/bin:$PATH
更新。
您还可以通过编辑您的 ~/.zshrc
文件来永久更改此设置: export PATH="./vendor/bin:..."
初始构建(现有仓库)-- 只需执行一次
在您的 ~/Sites
目录中运行
git clone git@github.com:thinkshout/new-project-name.git
cd new-project-name
composer install
构建
运行 robo configure
命令将读取 .env.dist、cli 参数和您的本地环境(DEFAULT_PRESSFLOW_SETTINGS
),以生成 .env 文件。此文件将用于设置数据库和其他标准配置选项。如果没有提供数据库名称,将使用项目名称和 git 分支名称。如果没有提供数据库名称,将使用项目名称和 git 分支名称。请注意,传递给 robo configure 的参数可以包括:--db-pass;--db-user;--db-name;--db-host。
robo configure
# Use an alternate DB password
robo configure --db-pass=<YOUR LOCAL DATABASE PASSWORD>
# Use an alternate DB name
robo configure --db-name=<YOUR DATABASE NAME>
# Use an alternate release/production/live branch name
robo configure --prod-branch=<YOUR BRANCH NAME>
如果您想本地设置 DEFAULT_PRESSFLOW_SETTINGS
,其结构如下
DEFAULT_PRESSFLOW_SETTINGS_={"databases":{"default":{"default":{"driver":"mysql","prefix":"","database":"","username":"root","password":"root","host":"localhost","port":3306}}},"conf":{"pressflow_smart_start":true,"pantheon_binding":null,"pantheon_site_uuid":null,"pantheon_environment":"local","pantheon_tier":"local","pantheon_index_host":"localhost","pantheon_index_port":8983,"redis_client_host":"localhost","redis_client_port":6379,"redis_client_password":"","file_public_path":"sites\/default\/files","file_private_path":"sites\/default\/files\/private","file_directory_path":"site\/default\/files","file_temporary_path":"\/tmp","file_directory_temp":"\/tmp","css_gzip_compression":false,"js_gzip_compression":false,"page_compression":false},"hash_salt":"","config_directory_name":"sites\/default\/config","drupal_hash_salt":""}
配置 Drush
Drush 选项可以在 .env
文件中进行配置。例如,为了设置 drush uli
等命令的默认 uri,添加以下内容
DRUSH_OPTIONS_URI="https://web.new-project-name.localhost"
安装 -- 定期执行(尤其是在更改分支后)
运行 robo install 命令将运行 composer install 以添加所有必需的依赖项,然后安装网站并导入导出的配置。
robo install
提交代码 -- 定期执行
每次开始新任务时,您应该从 production
分支创建一个带有 github 工作项编号和简短描述分支目标的分支
git checkout production
git pull
git checkout -b issue-123-short-description
作为最佳实践,您现在应该重新安装
robo install
现在开始修改您的更改。确保配置更改已保存在代码库中。如果您进行配置更改并且它似乎没有影响您的代码库(即它没有对 config
文件夹进行任何更改),请运行 drush cex
。
一旦您对更改感到满意,从您的分支创建一个 pull request 到 github 中的 develop
分支,并在 PR 中标记技术负责人或 PM。同时,将您的工作项移动到 Zenhub 上的“技术审查”列。然后,有人将审查 PR 以进行潜在改进或修复,并将其合并,并将工作项移动到 Zenhub 上的“准备部署”列。此工作项现在已准备好与下一个版本一起发布。
测试 -- 需要时执行
测试在 CircleCI 上自动运行,但也可以使用以下命令在本地运行
robo test
我们还正在对自定义模块和主题目录运行Drupal代码检查器。如果你提交了一个包含一些编码标准错误的PR,你的构建在circle上将会失败。你可以通过运行以下命令在你的本地站点机器上运行相同的代码检查器:
composer code-sniff
如果你有错误,你可以运行此命令来自动修复大多数这些错误:
composer code-sniff-fix
该网站还在PR阶段使用backstopjs进行视觉回归测试,并在夜间在develop multidev上运行。关于backstopjs的更多信息,包括如何在本地运行,可以在.ci/test/visual-regression
的README中找到。
如果你需要应用补丁(根据要修改的项目,拉取请求通常是一个更好的解决方案),你可以使用composer-patches插件。
要将补丁添加到drupal模块"foobar",请在composer.json的extra
部分中插入patches部分
"extra": { "patches": { "drupal/foobar": { "Patch description": "URL to patch" } } }
更新Drupal核心
此项目将尝试保持所有Drupal核心文件的最新状态;项目drupal-composer/drupal-scaffold用于确保每次更新drupal/core时都会更新你的脚手架文件。如果你自定义了任何“脚手架”文件(通常为.htaccess),如果你修改的任何文件在新版本的Drupal核心中更新,你可能需要合并冲突。
按照以下步骤更新你的核心文件。
- 运行
composer update drupal/core "drupal/core-*" --with-all-dependencies
以更新Drupal核心及其依赖项。