loadsys / cakephp-shell-scripts
可重用 CakePHP 项目外壳脚本。
This package is not auto-updated.
Last update: 2024-09-14 14:34:53 UTC
README
这个脚本集合旨在为常见项目任务提供一致性和快捷方式。以下列出了关键工具及其描述。这些脚本与Loadsys CakePHP App Skeleton高度兼容。
-
这是
master
分支,与3.x.x
版本一起,仅适用于 Cake 3 项目。 -
cake-2.x
分支和2.x.x
版本是为使用 composer 的 Cake 2.x 项目设计的(仍然支持 git 子模块)。 -
以下列出的大多数脚本可以接受第一个参数
-h
来输出使用信息。 -
大多数脚本设计为以很少或没有参数运行;尽可能猜测合理的默认值。
-
大多数脚本设计为在非零退出代码下优雅地失败。
需求
以下依赖项假定在目标系统上可用,并通过默认的$PATH
可用。
bash
composer
curl
git
mail
mysql
mysqldump
php
(建议 v5.6)realpath
(在 OS X 上默认不可用)readlink
zip
此外,一些脚本还期望安装额外的工具,这些工具应作为您的项目中的 composer 依赖项安装:
bin/phpcs
bin/phpunit
bin/phpdoc
bin/cake
(由目标项目安装)
如果这些项不可用,某些脚本可能无法按预期运行。
重要提示:此包的早期版本会自动通过 composer 安装 CakePHP
、PHP_CodeSniffer
、PHPUnit
、phpDocumentor
、PHP-Parser
和 PHPMetrics
。现在应将这些工具添加到项目的 composer.json
中,如下所示。
安装
警告:这些脚本目前仅与 Cake 3.x 兼容。不要尝试在其他任何内容上使用它们。
您的项目composer.json
文件应包含类似以下内容:
{ "require": { "loadsys/cakephp-shell-scripts": "~3.0", "cakephp/cakephp": "~3.3", "phpunit/phpunit": "~4.1", "phpdocumentor/phpdocumentor": "~2.0", "loadsys/loadsys_codesniffer": "~3.0", "nikic/php-parser": "~0.9", "phpmetrics/phpmetrics": "^1.10" }, "config": { "bin-dir": "bin" } }
然后运行composer install
以将此存储库拉入您的项目。在项目根目录中应创建一个bin/
文件夹,其中包含从此包中所有脚本的符号链接。
注意: bin-dir
是非标准的,可能与安装“二进制文件”的其他 composer 包发生冲突。捆绑的脚本都期望位于PROJECT_ROOT/bin
中,因此如果您的项目不包含bin-dir
设置,则不要期望任何内容都能正常工作。
贡献改进
警告:我们欢迎外部贡献,但如果它们不影响我们对这些工具的使用,则可能会被拒绝。在发送拉取请求之前,请考虑这一点。
目前没有方便的方法来设置围绕此存储库的测试框架。
- 最好的做法是将此存储库(或其分支)克隆到现有和稳定项目的
bin/
文件夹中,以便您有东西可以测试。 - 根据需要修改脚本,并将其提交到主题分支。
- 如果您已添加新脚本,请确保它们是可执行的,并运行
./composer-binaries
来自动更新 composer.json 文件(您应该使用 PHP 5.4+ 以正确使用JSON_PRETTY_PRINT
标志)。 - 运行
composer validate
来对 json 文件进行语法检查。 - 提交您分支的 pull request。
重要脚本
bin/cache-clear
使用新的 ConsoleShell
遍历您应用中配置的所有缓存,并清除每个缓存。
bin/codesniffer-run
封装对 PHPCodeSniffer 的调用,以便可以从 Vagrant VM 内部或外部调用。还检查 phpcs 的 installed_paths
配置,并在 CakePHP 和 Loadsys 编码标准尚未存在的情况下注入必要的路径。
bin/coverage-ensure
从您的 phpunit.xml[.dist]
文件中读取由 phpunit 运行生成的 clover.xml
文件的位置,然后检查您的代码覆盖率。接受一个整数命令行参数,表示所需的最低百分比,如果您的覆盖率不足,则返回非零退出状态。旨在在自动化测试运行期间使用,如 Travis。
bin/db-backup
使用 config/app.php
中定义的默认数据库凭据,在本地 backups/
文件夹中创建数据库的 ZIPed mysqldump
。非常有用,因为它不需要指定数据库凭据。它还会报告 ZIP 大小,以帮助您随着时间的推移保持心理账户。
可以在执行危险操作(如代码部署和数据库迁移)之前手动使用一次备份,或者自动使用(如在 Vagrant VM 关闭脚本中,以保留内部数据库并防止 vagrant destroy
。)
bin/db-login
一个简单的快捷脚本,使用在 config/app.php
中定义的 [Datasources][default]
键为您启动一个命令行 mysql
会话。在生产环境中运行手动数据查询进行故障排除时非常方便。
还正确处理了 I/O 重定向,所以您在通常运行 mysql --user=user -ppass --host=host --port=3306 database_name < import.sql
时,可以改为运行 bin/db-login < import.sql
,而无需担心连接凭据。非常适合脚本和配置。
bin/deploy
自动化了应用于应用的只读副本(如预发布或生产)的所有步骤,以从存储库中提取新代码并更新本地运行的副本。它执行以下任务:
- 检查本地工作副本,以确保自签出的提交以来没有做出任何更改,这可能会阻止自动提取或合并。
- 备份活动数据库(虽然粗糙,但适用于小型应用)。
- 从远程存储库提取和合并代码。
- 应用迁移(如果存在)。
- 清除 Cake 缓存目录。
- 复制环境特定的配置(如果存在)。
- 更新 git 子模块和/或 composer 依赖项。
- 确保文件所有权和写权限仍然正确。
- 向用户显示新活动提交的日志,并可选地生成通知电子邮件。
bin/docs-generate
封装对 phpDocumentor 的调用,以便可以从 Vagrant VM 内部或外部调用,但始终在内部执行。
bin/tests-run
旨在作为从您的宿主机器执行 phpunit 的便利方法,如果是从 Vagrant 内部调用,它将执行测试。
它也可以接受部分文件名作为参数,并直接运行相应的测试用例。这种使用方式旨在与文件监视器搭配使用,例如 kicker、grunt 或 efsw。当源文件或其对应的测试用例文件发生变化时,可以自动在虚拟机内执行该单个文件的测试。
许可证
免责声明:我们自用这些工具,但这并不意味着它们在您的特定情况下一定会工作。此存储库是公开的,以防它对其他人有用(并且对我们来说很方便),但它 不受支持 并且 可能随时更改。如果问题或贡献不会对我们产生影响,可能会被忽略。警告过您了!
版权
版权所有 © 2015 Loadsys Web Strategies