bluesparklabs / spark
✨ 用于开发、测试和运行 Drupal 网站的工具包。
Requires
- aws/aws-sdk-php: ^3.62
- boedah/robo-drush: ^3.1.1
- cocur/slugify: ^3.1
- consolidation/robo: ^1.2.2
- droath/robo-docker-compose: ^0.0.8
- drush/drush: ~8
- fzaninotto/faker: ^1.8.0
- hassankhan/config: ^1.0.0
- ifsnop/mysqldump-php: dev-master
- respect/validation: ^1.1.15
- vlucas/phpdotenv: ^2.5
- webmozart/path-util: ^2.3
This package is not auto-updated.
Last update: 2023-12-24 01:23:42 UTC
README
用于开发、测试和运行 PHP 应用的工具包。
Spark 提供了一个基于 Docker 的全栈开发环境,用于持续集成。它包含创建匿名数据库导出、执行测试套件、初始化 Solr 索引等命令。只需将 Spark 添加为项目的依赖项,然后进行一些基本的配置步骤,您就可以开始使用了。
《关于工具包》一文,由 Kent C. Dodds 发布,为 Spark 的架构设计提供了极大的灵感。[链接](https://blog.kentcdodds.com/concerning-toolkits-4db57296e1c3)
路线图
- 我们正在实施关键数据库交互,以便能够使用 Spark 创建符合 GDPR 规定的匿名数据库导出。([查看我们的看板](https://github.com/BluesparkLabs/spark/projects/1))
- 在数据库交互功能之后,我们将为我们的第一个 alpha 版本做准备,这将引入一种更灵活的方式来定义项目环境所需的服务。
入门 — 如何将 Spark 化您的项目
查看 Drupal 8 示例项目。
以下是主要步骤概述。
1. 将 Spark 添加为依赖项
$ composer require bluesparklabs/spark
2. 在您的 composer.json
中定义一个新的脚本
"scripts": { "spark": "SPARK_WORKDIR=`pwd` robo --ansi --load-from vendor/bluesparklabs/spark" }
3. 在您的 composer.json
中的 autoload
字段中添加自动加载信息
"autoload": { "psr-4": { "BluesparkLabs\\Spark\\": "./vendor/bluesparklabs/spark/src/" } },
4. 在项目的根目录中创建一个名为 .spark.yml
的文件。 这将是 Spark 将使用的项目特定配置。
有关如何编写项目特定配置的详细信息,请参阅我们的 .spark.example.yml
文件。
5. 可选:在项目的根目录中创建一个名为 .spark.local.yml
的文件。 这将是 Spark 将使用的环境特定配置。请勿将此文件提交到您的仓库。如果您想在 CI 构建或托管环境中利用环境特定配置,建议的方法是将这些文件以特定名称保存在您的仓库中,例如 .spark.local.ci.yml
,并确保您有自动化工具将它们重命名为适当的 .spark.local.yml
。
有关如何编写项目特定配置的详细信息,请参阅我们的 .spark.example.yml
文件。
推荐的 composer.json
代码片段
请参阅 Drupal 8 示例项目的 composer.json
文件。
1. Composer 默认将所有包安装在名为 ./vendor
的目录下。使用 composer/installers
定义 Drupal 模块、主题等的安装目标。在 composer.json
中的示例配置
"extra": { "installer-paths": { "web/core": ["type:drupal-core"], "web/libraries/{$name}": ["type:drupal-library"], "web/modules/contrib/{$name}": ["type:drupal-module"], "web/profiles/contrib/{$name}": ["type:drupal-profile"], "web/themes/contrib/{$name}": ["type:drupal-theme"], "drush/contrib/{$name}": ["type:drupal-drush"] } }
2. 如果您正在使用 Drupal 网站,请使用 drupal-composer/drupal-scaffold 安装和更新位于 core
文件夹外部且不属于 drupal/core 包的文件。此 Composer 插件将在您安装或更新 drupal/core
时处理文件,但为了手动运行它,您可以在 composer.json
中添加一个脚本
"scripts": { "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", },
3. Spark 有一个命令 drupal:files
,确保 files
文件夹存在并具有正确的权限,以及存在 settings.php
文件和 settings.spark.php
文件,该文件目前包含 Spark 的 Docker 特定配置,例如数据库连接等。您可能希望将其添加到您的 composer.json
中的 scripts
字段,以便 Composer 在安装或更新包时执行它
"scripts": { "post-install-cmd": "composer run spark drupal:files", "post-update-cmd": "composer run spark drupal:files", }
使用方法
这是您运行 Spark 命令的方式
$ composer run spark <command>
提示:将 spark
设置为命令行别名到 composer run spark
。
要列出所有可用的命令,只需发出 $ composer run spark
。以下是您目前可以使用 Spark 做到的一些高级概述
命令命名空间 | 描述 |
---|---|
drush |
执行 Drush 命令 |
containers |
管理基于 Docker 的环境 |
db |
删除或导入数据库,检查其可用性 |
drupal |
(正在弃用。)创建备份并上传到 Amazon S3 存储桶,确保 files 目录和 settings.php 文件,安装 Drupal |
mysql |
导入或导出数据库。(最终将弃用 db 命令组。) |
solr |
使用 Drupal 的配置初始化 Solr 核心并检查其可用性 |
test |
执行测试套件 |
命令
注意
- 命令将在它们准备好进行使用时在此处进行记录。
- ⚠️ 当使用命令行参数时,您需要在您的参数之前包含一个双横线(
--
)。例如,composer run spark mysql:dump -- --non-sanitized
。(有关此 原因 和 建议的解决方案 请参阅。)
mysql:dump
将数据库导出为文件。默认情况下,文件放置在当前文件夹中,并且根据 .spark.yml
中的清理规则进行清理。以下命令行参数是可选的。
参数 | 描述 |
---|---|
--non-sanitized |
生成非清理数据导出。 |
--destination |
导出文件将放置的目录。可以是绝对路径或相对路径。 |