narrowspark / automatic
Composer 插件,用于自动化应用中最常见的任务。
Requires
- php: ^7.2
- composer-plugin-api: ^1.0
- ext-json: *
- ext-tokenizer: *
Requires (Dev)
- composer/composer: ^1.7.0 || ^1.8.0 || ^1.9.0
- infection/infection: ^0.13.6
- mockery/mockery: ^1.2.2
- narrowspark/coding-standard: ^3.2.0
- narrowspark/testing-helper: ^8.0.2
- nyholm/nsa: ^1.1.0
- ocramius/package-versions: ^1.4.0 || ^1.5.0
- phpunit/phpunit: ^8.4.1
- slam/phpstan-extensions: ^3.6.1
- 1.0.x-dev
- dev-master / 0.13.x-dev
- 0.13.1
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.1
- v0.4.0
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-dependabot/npm_and_yarn/json5-2.2.3
- dev-renovate/configure
- dev-dependabot/npm_and_yarn/node-fetch-2.6.7
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/textlint-12.0.2
- dev-dependabot/npm_and_yarn/textlint-rule-write-good-2.0.0
- dev-dependabot/npm_and_yarn/textlint-rule-alex-3.0.0
- dev-dependabot/npm_and_yarn/textlint-rule-helper-2.2.0
- dev-dependabot/npm_and_yarn/textlint-rule/textlint-rule-no-invalid-control-character-2.0.0
- dev-dependabot/npm_and_yarn/textlint-rule-terminology-2.1.5
- dev-dependabot/npm_and_yarn/textlint-rule-en-capitalization-2.0.3
- dev-dependabot/npm_and_yarn/textlint-rule-no-dead-link-4.7.0
- dev-dependabot/npm_and_yarn/ini-1.3.7
- dev-dependabot/npm_and_yarn/lodash-4.17.21
- dev-dependabot/npm_and_yarn/dot-prop-4.2.1
- dev-dependabot/composer/dot-build/wikimedia/composer-merge-plugin-tw-2.0.1
- dev-dependabot/npm_and_yarn/hosted-git-info-2.8.9
- dev-dependabot/npm_and_yarn/node-fetch-2.6.1
- dev-dependabot/npm_and_yarn/ini-1.3.8
- dev-dependabot/add-v2-config-file
- dev-dependabot/composer/phpunit/phpunit-tw-8.5.14
- dev-dependabot/composer/symfony/process-tw-5.2.1
- dev-dependabot/composer/composer/composer-tw-2.0.8
- dev-dependabot/composer/nyholm/nsa-tw-1.2.1
- dev-dependabot/composer/mockery/mockery-tw-1.4.2
- dev-dependabot/composer/justinrainbow/json-schema-tw-5.2.10
This package is auto-updated.
Last update: 2023-03-04 23:28:22 UTC
README
Narrowspark Automatic 自动化应用中最常见的任务,如安装和卸载包或提供者,复制文件,加速依赖项下载,创建骨架和其他基于 Composer 依赖项的配置。
如何使用 Narrowspark Automatic 工作呢?
Narrowspark Automatic 是一个 Composer 插件,它修改了 require
、update
、create project
和 remove
命令的行为。在 Automatic 扩展应用程序中安装或删除依赖项时,您的应用程序可以在 Composer 任务执行前后执行任务。
考虑以下示例
cd your-project
composer require viserio/console
如果您在您的应用程序中执行此命令,该应用程序不支持 Narrowspark Automatic,则此命令将以正常的 composer require 行为执行。
注意
automatic.json
和 composer.json 的额外密钥automatic
用于使用配置器、脚本执行器、自定义配置器等配置 Narrowspark Automatic。
当 Narrowspark Automatic 安装在您的应用程序中时,它将检查是否存在 automatic.json
文件或带有 automatic
的 composer.json 额外密钥。在上面的示例中,Automatic 决定了安装后需要运行的自动化任务。
注意 Narrowspark Automatic 在
automatic.lock
文件中跟踪配置,该文件必须提交到您的代码仓库。
在新的应用程序中使用 Narrowspark Automatic
使用以下命令将 Narrowspark Automatic 作为必需依赖项添加到您的应用程序中: composer require narrospark/automatic
。
使用 Narrowspark Automatic 创建骨架应用程序
Narrowspark Automatic 支持骨架生成。例如,这是您的 composer.json
文件
{ "type": "project", "license": "MIT", "require": { "php": "^7.2", "ext-mbstring": "*", "narrowspark/automatic": "^0.3.5", "narrowspark/skeleton-generators": "^0.1.0" }, "extra": { "app-dir": "app", "config-dir": "config", "database-dir": "database", "public-dir": "public", "resources-dir": "resources", "routes-dir": "routes", "storage-dir": "storage", "tests-dir": "tests" }, "autoload": { "psr-4": { "App\\": "app/" }, "exclude-from-classmap": [ "tests/" ] }, "autoload-dev": { "psr-4": { "App\\Tests\\": "tests/" } }, "minimum-stability": "dev", "prefer-stable": true }
Automatic 会搜索所有包以找到类型为 automatic-skeleton
的包。如果找到具有此类型的包,所有骨架都将保存到运行时的 automatic.lock
中。
这意味着您可以执行以下命令: composer create-project your/project
来创建一个 Automatic 扩展应用程序,Automatic 将询问为您的应用程序生成哪个骨架。
阅读 骨架文档 了解有关如何为您自己的应用程序创建骨架的所有信息。
Narrowspark Automatic 任务定义在 automatic.json
文件中或在 composer 额外密钥 automatic
中,可以包含任意数量的其他文件和目录。例如,这是 viserio/console
的 automatic.json
{ "configurators": { "providers": { "Viserio\\Component\\Console\\Provider\\ConsoleServiceProvider": ["global"], "Viserio\\Component\\Console\\Provider\\LazilyCommandsServiceProvider": ["global"] }, "proxies": { "Viserio\\Component\\Console\\Proxy\\Console": ["global"] } }, "script-extenders": [ "Viserio\\Component\\Console\\Automatic\\CerebroScriptExtender" ] }
providers
和 proxies
选项告诉 Narrowspark Automatic 在哪些环境中可以自动开启此 provider
、proxy
(在此情况下全部开启)。
《script-extenders》选项为 Narrowspark 自动脚本 auto-scripts
添加了一个新的脚本执行器。现在您可以在 composer.json
应用文件中的 auto-scripts
部分运行 viserio console
命令。
本 automatic.json
文件中定义的指令也被 Narrowspark 自动脚本用于卸载依赖项(例如 composer remove viserio/console
)以撤销所有更改。这意味着自动脚本可以从应用中移除控制台提供者和代理,并从 Narrowspark 自动脚本中移除脚本执行器。
阅读配置文档,了解如何为您自己的软件包创建配置的所有信息。
自动脚本扩展 Composer
Narrowspark 自动脚本添加了一个具有跳过旧依赖项标签以加速下载的功能的并行下载器。
以下示例显示了如何向 Narrowspark 自动脚本添加跳过标签,这样它将跳过所有小于 3.5
的 cakephp
标签。
{ "extra": { "automatic": { "require": { "cakephp/cakephp": ">=3.5" } } } }
您可以使用此 Narrowspark 自动脚本密钥 dont-discover
在 composer.json 的额外 automatic
部分中跳过软件包的自动发现。使用软件包名称跳过自动发现,例如在这个示例中
{ "extra" : { "dont-discover": [ "viserio/console" ] } }
自动发现现在将跳过 viserio/console
。
自动安全审计
Narrowspark 自动脚本根据 FriendsOfPHP/security-advisories 数据库显示在每次 composer install
和 composer update
期间安装的已知安全漏洞。
如果您想更改下载器的默认 HTTP timeout = 20
,请在 composer.json 的 extra
部分添加 audit
,如下例所示
{ "extra" : { "audit": { "timeout": "30" } } }
测试
您需要运行
$ php vendor/bin/phpunit
版本控制
此库遵循语义版本控制,并在主要版本中执行代码规则集的添加。
变更日志
请查看 CHANGELOG.md
。
贡献
请查看 CONTRIBUTING.md
。
行为准则
请查看 CODE_OF_CONDUCT.md
。
鸣谢
- 丹尼尔·班纳特
- 所有贡献者
- Narrowspark 自动脚本受到了 symfony/flex 的启发
许可证
此软件包使用 MIT 许可证授权。
请查看 LICENSE.md
。