sebsept / ps_dev_base
用于高质量 Prestashop 模块开发的工具。
Requires
- php: >=7.2.5
- composer-plugin-api: ^2.0
- ext-json: *
- phpstan/phpstan: ^1.9.1
Requires (Dev)
- composer/composer: ^2.0
Provides
- prestashop/autoindex: ^1.0
README
本包提供用于 Prestashop 模块开发 的工具。
它旨在 减轻安装和配置基本开发工具的负担。
快速开始
composer require --dev sebsept/ps_dev_base composer list psdt
要求
- 已安装 composer 2(不是 composer 1.x)。如果您没有 composer,是时候 开始学习它 了。
- 您的模块必须要求 php >= 7.2.5
为了便于使用,我强烈建议使用 composer 的命令行自动完成。
有几个选项可供选择,这个选项 由 composer 推荐。
特色工具
- 代码格式化:使用 prestashop 标准配置的 php-cs-fixer,开箱即用。
- 代码分析:phpstan 自动检测 PrestaShop 根目录或询问(无需做更多操作)。
fill-indexes命令,用于添加所需的 index.php 文件。(下面有详细说明)- git 预提交钩子安装程序(下面有详细说明)
更多工具将陆续推出...
它是如何工作的?
此包是 composer 插件,它向 composer 命令行工具添加新命令。
这些命令位于 psdt(PrestaShop 开发工具)命名空间下。
第一次运行命令时,也会添加一个 composer 脚本。例如,可以使用 composer psdt:php-cs-fixer 调用 php-cs-fixer。
您甚至可以通过 定义别名 来进行额外操作。
提供的命令
- psdt:php-cs-fixer
- psdt:phpstan
- psdt:fill-indexes
- psdt:pre-commit(目前尚不支持 Windows)
php-cs-fixer
composer psdt:php-cs-fixer [--reconfigure]
格式化 php 文件以符合 Prestashop 标准。这允许代码库保持一致。
由 PrestaShop/php-dev-tools/ 提供。
本包提供自动安装。
允许符合 Prestashop 标准。
第一次运行(或使用 --reconfigure 选项时)
- 如果需要,将安装 PrestaShop/php-dev-tools 包。
- .php_cs 文件将(重新)创建为 Prestashop 标准样式。(破坏性操作,请在版本控制下获取您的文件!)
- 将添加 composer 脚本 php-cs-fixer。因此,您可以使用
composer php-cs-fixer调用此命令。
下一次运行将运行修复器。所有文件都将根据 Prestashop 标准进行格式化。
phpstan
composer psdt:phpstan [--reconfigure]
使用 Prestashop 标准 对 PrestaShop 安装进行 phpstan。
由 PrestaShop/php-dev-tools/ 提供。
本包提供自动安装。
第一次运行或 composer psdt:phpstan --reconfigure 将执行以下操作
- 将安装(如果需要)包
prestashop/prestashop-dev-tools - 创建/覆盖 phpstan.neon 配置文件,使用 Prestashop 标准。
- 猜测 _PS_ROOT_DIR_ 并请求确认(或者你可以提供另一个路径)(此路径用于分析)
- 安装 composer 脚本
phpstan
接下来的运行将触发 composer psdt:phpstan
fill-indexes
composer psdt:fill-indexes [--check-only]
在每个文件夹中添加缺失的 index.php 文件。现有的 index.php 文件不会被覆盖。
--check-only 选项仅列出缺失的 index.php 文件,而不会添加它们。
此选项在 git 的 pre-commit 钩子中运行时非常有用。
这是 Prestashop 的一个安全要求,以避免列出内容。
更多信息请参阅官方文档:此处。
我不能包含 prestashop/autoindex,因为它 针对 php 5.6 并且有其他问题。
我的替代方案更简单,不需要额外的依赖。
Git Pre-commit 钩子安装程序
composer psdt:pre-commit [--reconfigure]
- 添加了
precommit.sh文件 - 创建到
.git/hooks/pre-commit的符号链接 - 符号链接被设置为可执行
- 添加了 composer 脚本
pre-commit
在执行提交之前,将触发 composer 脚本 pre-commit,并且必须成功(返回 0),否则提交将被中止。
composer pre-commit 脚本钩子中的命令由实现 PreCommitRegistrableCommand 接口命令提供。
目前是 phpstan、php-cs-fixer 和 fill-indexes
您可以通过编辑 composer 脚本来调整脚本。
您可以通过运行 composer psdt:pre-commit(或 composer run-script pre-commit)来预测提交是否将失败。
安装
composer require --dev sebsept/ps_dev_base
内部原理 / 致谢
php-cs-fixer 和 phpstan 的配置和启动由 PrestaShop/php-dev-tools/ 提供。
存储库操作由 github workflows 实现。
下一步是什么?
查看此 GitHub 存储库中的问题。
开发说明(针对此包)
使用 ln -s $(pwd)/precommit.sh .git/hooks/pre-commit 安装 precommit 钩子(在 Linux 上有效)。请确保还将文件设置为可执行 chmod +x precommit.sh。