consolidation / robo
现代任务运行器
Requires
- php: >=8.2
- consolidation/annotated-command: ^4.8.1
- consolidation/config: ^3
- consolidation/log: ^3
- consolidation/output-formatters: ^4.1.2
- league/container: ^3.3.1 || ^4.0
- phpowermove/docblock: ^4.0
- symfony/console: ^6 || ^7
- symfony/event-dispatcher: 6 || ^7
- symfony/filesystem: ^6 || ^7
- symfony/finder: ^6 || ^7
- symfony/process: ^6 || ^7
- symfony/yaml: ^6 || ^7
Requires (Dev)
- natxet/cssmin: 3.0.4
- patchwork/jsqueeze: ^2
- pear/archive_tar: ^1.4.4
- phpunit/phpunit: ^7.5.20 || ^8 || ^9
- squizlabs/php_codesniffer: ^3.6
- yoast/phpunit-polyfills: ^0.2.0
Suggests
- consolidation/self-update: For self-updating a phar-based app built with Robo
- natxet/cssmin: For minifying CSS files in taskMinify
- patchwork/jsqueeze: For minifying JS files in taskMinify
- pear/archive_tar: Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.
- totten/lurkerlite: For monitoring filesystem changes in taskWatch
Conflicts
- 5.x-dev
- 5.0.0
- 4.x-dev
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 4.0.0-alpha1
- 3.x-dev
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0-alpha3
- 3.0.0-alpha2
- 3.0.0-alpha1
- 2.x-dev
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 2.0.0-alpha3
- 2.0.0-alpha2
- 2.0.0-alpha1
- 1.x-dev
- 1.5.0
- 1.4.13
- 1.4.12
- 1.4.11
- 1.4.10
- 1.4.9
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.0
- 1.0.0-RC3
- 1.0.0-RC2
- 1.0.0-RC1
- 1.0.0-beta1
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
- dev-larowlan-symfony7
- dev-register-multiple
- dev-robo-register-3.x
- dev-robo-register
- dev-php-8.2-support-3.x
- dev-site
- dev-php8.2-support
- dev-update-dependencies-for-4
- dev-consolidation-log-3
- dev-psr-log-2
- dev-symfony-process-6
- dev-symfony-6
- dev-php-8.1
- dev-homebrew-integration
- dev-robo-1-with-self-update-2
- dev-use-self-update-2.0
- dev-fix-task-pack
- dev-update-dependencies
- dev-prep-for-3.0
- dev-older-process-component
- dev-php-8
- dev-finder5
- dev-use-printoutput
- dev-fix-ignorelist
- dev-capture-exec-output
- dev-pass-io-param
- dev-simplify-init-test-tasks-trait
- dev-save-and-restore-state
- dev-symfony4-lowest
- dev-inject-input-output
- dev-version-bump
- dev-get-command-instance
This package is auto-updated.
Last update: 2024-08-23 16:13:50 UTC
README
现代简单的PHP任务运行器,受Gulp和Rake启发,旨在自动化常见任务
- 编写跨平台脚本
- 处理资产(less、sass、压缩)
- 运行测试
- 执行守护进程(和工作者)
- 监视文件系统更改
- 使用sftp/ssh/docker进行部署
分支
所有版本都大致兼容;每个主要版本引入的重大更改相对较小,通常只影响大多数客户端未使用的类。
请注意,Robo 5.x已将consolidation/self-update作为直接依赖项删除。如果您正在使用它来更新应用程序phar,则需要显式添加它。
安装
Phar
wget https://robo.li/robo.phar
要全局安装,请将robo.phar
放在/usr/bin
中。(OSX 10.11+上的/usr/local/bin/
)
chmod +x robo.phar && sudo mv robo.phar /usr/bin/robo
OSX 10.11+
chmod +x robo.phar && sudo mv robo.phar /usr/local/bin/robo
现在您可以通过robo
简单地使用它。
Composer
- 运行
composer require consolidation/robo:^4
- 使用
vendor/bin/robo
执行Robo任务。
用法
所有任务都定义为RoboFile.php
中的public methods
。可以通过运行robo init
来创建它。所有以task
前缀开始的trait中的受保护方法都是任务,可以在您的任务中进行配置和执行。
示例
通过查看其自己的RoboFile或Codeception项目的RoboFile来学习Robo的最佳方式。在examples/RoboFile.php
中还有一些基本的示例命令。
以下是一些片段
运行接受测试,启动本地服务器和selenium服务器。
<?php use Robo\Symfony\ConsoleIO; class RoboFile extends \Robo\Tasks { function testAcceptance(ConsoleIO $io, $seleniumPath = '~/selenium-server-standalone-2.39.0.jar') { // launches PHP server on port 8000 for web dir // server will be executed in background and stopped in the end $this->collectionBuilder($io)->taskServer(8000) ->background() ->dir('web') ->run(); // running Selenium server in background $this->collectionBuilder($io)->taskExec('java -jar ' . $seleniumPath) ->background() ->run(); // loading Symfony Command and running with passed argument $this->collectionBuilder($io)->taskSymfonyCommand(new \Codeception\Command\Run('run')) ->arg('suite','acceptance') ->run(); } }
如果您执行robo
,您将看到名为test:acceptance
的任务被添加到可用任务列表中。要执行它,您应该运行robo test:acceptance
。您可以通过传递新的路径作为参数来更改selenium服务器的路径
robo test:acceptance "C:\Downloads\selenium.jar"
使用watch
任务,您可以使用它来运行测试或构建资产。
<?php class RoboFile extends \Robo\Tasks { function watchComposer(ConsoleIO $io) { // when composer.json changes `composer update` will be executed $this->collectionBuilder($io)->taskWatch()->monitor('composer.json', function() use ($io) { $this->collectionBuilder($io)->taskComposerUpdate()->run(); })->run(); } }
清理日志和缓存
<?php class RoboFile extends \Robo\Tasks { public function clean(ConsoleIO $io) { $this->collectionBuilder($io)->taskCleanDir([ 'app/cache', 'app/logs' ])->run(); $this->collectionBuilder($io)->taskDeleteDir([ 'web/assets/tmp_uploads', ])->run(); } }
此任务清理app/cache
和app/logs
目录(忽略.gitignore和.gitkeep文件)。可以通过运行来执行
robo clean
创建Phar存档
function buildPhar(collectionBuilder $io) { $files = Finder::create()->ignoreVCS(true)->files()->name('*.php')->in(__DIR__); $packer = $this->collectionBuilder($io)->taskPackPhar('robo.phar'); foreach ($files as $file) { $packer->addFile($file->getRelativePathname(), $file->getRealPath()); } $packer->addFile('robo','robo') ->executable('robo') ->run(); }
我们需要更多任务!
创建您自己的任务,并通过拉取请求发送它们,或者创建带有"type": "robo-tasks"
的包,在Packagist上的composer.json
中创建with
。
鸣谢
关注@robo_php以获取更新。
由Consolidation团队和我们的杰出的贡献者提供。