thinkshout/bene-project

ThinkShout 为 Drupal 8 项目和 composer 定制的项目模板

安装数: 1,160

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 4

分支: 0

开放问题: 42

类型:项目


README

CircleCI

Bene 项目

新项目

创建 Git 仓库

前往 github https://github.com/new 创建一个新的仓库。脚本期望一个空的仓库。不要在其中放置任何内容,否则脚本将失败。

持续集成

查看 .circleci/README.md 中的说明以配置 CircleCI。

初始构建

创建一个本地项目(将 'my-bene-project' 改为您的项目名称)

composer create-project thinkshout/bene-project --stability dev --no-interaction ~/Sites/my-bene-project

在您的环境中创建一个空数据库以进行安装

mysql -uroot -p -e "create database benesite"

进入 ~/Sites/my-bene-project 目录,并使用以下命令将您的网站构建到新目录中

./scripts/install.sh

过程中有几个提示,请注意以下事项

  • 在后续过程中会提示输入数据库名。如果数据库不存在,脚本将失败。请使用上面创建的数据库,但请注意,如果您选择一个已存在的数据库,脚本将清除其内容。

完成!您的输出脚本应显示类似于以下的消息

Bene 安装完成。

进入 ~/Sites/bene-new-project 目录并运行

drush uli

现有项目

初始构建(现有仓库)

在 ~/Sites 目录下运行

git clone git@github.com:thinkshout/new-project-name.git
cd new-project-name
composer install

测试

测试在 CircleCI 上自动运行,但也可以使用以下命令在本地运行

robo test

更新代码

更新安装配置文件

所有对配置文件的工作应在 web/profiles/bene 中完成。提交并推送更改到该仓库。要在项目中更新配置文件,请从项目目录运行 robo dev:update

更新贡献模块

使用 composer require drupal/{module_name} 您可以下载新的依赖项到您的安装中。

composer require drupal/devel:8.*

对贡献模块应用补丁

如果您需要应用补丁(根据正在修改的项目,拉取请求通常是更好的解决方案),您可以使用 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 核心新版本发布时解决任何修改文件的合并冲突。

按照以下步骤更新您的核心文件。

  1. 运行 composer update drupal/core --with-dependencies 以更新 Drupal 核心和其依赖项。
  2. 运行 git diff 以确定是否有任何脚手架文件已更改。审查文件以查找任何更改,并将对 .htaccessrobots.txt 的任何自定义更改恢复到之前的状态。
  3. 将所有更改作为一个单独的提交提交,以便在检出分支或运行 git bisect 时,webcore 保持同步。
  4. 如果在第2步中出现非平凡冲突,您可能希望在分支上执行以下步骤,并使用git merge将更新的核心文件与您的自定义文件合并。这有助于使用kdiff3这样的三方合并工具。如果您的更改很简单,则此设置不是必需的;将所有修改保持在文件开头或结尾是一个保持合并简单的良好策略。

注意事项

开发设置

这是一个使用robo taskrunner构建的Drupal 8网站。

首先您需要安装composer

使用brew安装composer

然后如果尚未添加,将./vendor/bin添加到您的PATH中,放在PATH变量的开头(仅当不使用新的Bene安装时)

通过echo $PATH来检查

使用export PATH=./vendor/bin:$PATH来更新

您也可以通过编辑~/.zshrc~/.bashrc文件来使此更改永久有效:export PATH="./vendor/bin:..."

构建(对于新仓库将自动完成)

运行robo configure命令将读取.env.dist、CLI参数和您的本地环境(DEFAULT_PRESSFLOW_SETTINGS),以生成.env文件。此文件将用于设置数据库和其他标准配置选项。如果没有提供数据库名称,将使用项目名称和git分支名称。如果没有提供配置文件名称,则使用“standard”。注意传递给robo configure的参数可以包括:--db-pass;--db-user;--db-name;--db-host;--profile。

robo configure --profile=bene
# Use an alternate DB password
robo configure --profile=bene --db-pass=<YOUR LOCAL DATABASE PASSWORD>
# Use an alternate DB name
robo configure --profile=bene --db-name=<YOUR DATABASE 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":""}

安装(对于新仓库将自动完成)

运行robo install命令将运行composer install以添加所有必需的依赖项,然后安装网站并导入导出的配置。

robo install