codegyre / 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-07-23 15:55:35 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
中的 公共方法。可以通过运行 robo init
创建它。所有以 task
前缀开始的 traits 中的受保护方法都是任务,可以在您的任务中进行配置和执行。
示例
通过查看其自己的 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(); }
我们需要更多的任务!
创建您自己的任务,并通过 Pull Requests 提交它们或创建带有 "type": "robo-tasks"
的包 在 Packagist 上。
鸣谢
关注 @robo_php 以获取更新。
由 Consolidation 团队 和我们的 出色的贡献者 带来。