wouterj / fred
一个非常简单的基于迭代任务的执行器
0.3.0
2015-01-30 17:00 UTC
Requires
- php: >=5.3.3
- symfony/console: 2.*
- symfony/process: 2.*
Requires (Dev)
- behat/behat: ~3.0
- phpspec/phpspec: ~2.1
- phpunit/phpunit: 4.*
- symfony/finder: 2.*
- webmozart/glob: 1.0.*@dev
This package is auto-updated.
Last update: 2024-08-25 01:27:58 UTC
README
欢迎使用Fred。Fred将执行您在fred文件中描述的任务。
Fred目前还不是一名成熟的男子。此文档中使用的步骤尚未实现。您能帮我教他如何执行开发者任务吗?
为什么我应该使用Fred?
- 您无需在服务器上安装NodeJS、NPM来运行任务;
- 您可以使用您熟悉的语法;
- Fred的代码库非常小(仅有9个类)并且非常灵活,就像任务执行器一样。
安装
安装Fred的最佳方式是使用Composer
$ composer global require wouterj/fred:0.*
如果您正确设置了Composer的全局二进制目录,这将为您提供一个新命令:fred
使用方法
您首先创建一个fred.php
文件(fred文件)。在这个文件中,您指定任务。您通过调用文件中可用的$fred
变量的task()
方法来完成此操作
$fred->task('build', function () use ($fred) { // ... specify the tasks });
所有任务都从打开一个文件或多个文件开始,并将这些文件的Traversable传递给load()
方法。这样做最好的方式是使用Symfony Finder Component
use Symfony\Component\Finder\Finder; $fred->task('build', function () use ($fred) { $fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw')); });
现在您已经为所有.js
扩展名的文件在/web/assets/raw
中打开了一个Fred步骤序列。
现在您可以为此序列分配尽可能多的步骤
use Symfony\Component\Finder\Finder; use WouterJ\Fred\Extension as Ext; $fred->task('build', function () use ($fred) { $fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw')) ->then(new Ext\JsHint()) // Lint the JS code using JsHint... ->then(new Ext\Uglify()) // ...minify the JS files using UglifyJS... ->then(new Ext\Compact()) // ...and combine all JS files into one file ; });
最后,您必须将生成的代码输出到某个地方。这可以通过dist()
函数来完成
$fred->load(Finder::create()->files()->name('*.js')->in('/web/assets/raw')) ->then(new Ext\JsHint()) ->then(new Ext\Uglify()) ->then(new Ext\Compact()) ->dist('/web/assets/script.min.js') ;
现在,生成的代码已输出到/web/assets/script.min.js
文件中。
您可以通过使用fred build
(其中build
是任务的名称)来运行此任务。
许可证
该项目是在BSD许可证下发布的。有关更多信息,请参阅此包中包含的LICENSE文件。
路线图
当然,所有类型的更改都受到欢迎(只要它不会使Fred更加复杂),但Fred在达到稳定版本之前应该学会以下内容
- 有更多的测试(实际测试控制台应用程序)
- 有完整的文档
- 有更多的扩展和步骤