awakenweb / beverage
PHP 任务运行器
Requires
- php: >=5.4
- matthiasmullie/minify: dev-master
- symfony/console: ~2
- symfony/filesystem: ~2
- symfony/finder: ~2
Requires (Dev)
- fabpot/php-cs-fixer: dev-master
This package is not auto-updated.
Last update: 2019-02-20 18:15:47 UTC
README
Beverage
我知道你非常喜欢 Grunt 和 Gulp 来自动化诸如压缩 CSS 和 JS、调整图片大小等繁琐的任务。每个人都是这样。
但是你像我对 NPM 有反感吗?
当你只想压缩一些文件时,你是否厌倦了不得不下载几乎一半的互联网?
Beverage 正为你而来:为你的项目提供纯 PHP 和 Composer 驱动的任务运行器。
使用起来像 Gulp 一样简单,没有 NPM 依赖的混乱。如果你了解 Gulp,那么你已经掌握了 Beverage。
先决条件
- PHP 5.4+
- Composer
安装
将以下内容添加到你的 composer.json 文件中
{ "require": { "awakenweb/beverage": "dev-master" } }
模块
查看模块页面
配置
首先,在项目的根目录中创建一个 drinkmenu.php
文件。你可以通过运行 vendor/bin/beverage beverage:init
命令创建一个模板文件。
此文件将包含你想要运行的不同任务。
此文件必须至少包含一个 defaultTask()
函数,当调用 beverage 命令而没有调用特定任务时,将触发此函数。
以下是一个 drinkmenu.php
的示例
<?php use Awakenweb\Beverage\Beverage; use Awakenweb\Beverage\Modules\Css; use Awakenweb\Beverage\Modules\Js; function defaultTask() { minifyCss(); minifyJs(); } function minifyCss() { Beverage::files('*.css', ['css']) ->then(new Css()) ->destination('build/css'); } function minifyJs() { Beverage::files('*.js', ['js']) ->then(new Js()) ->destination('build/js'); }
要获取一个更完整的示例文件,请运行 vendor/bin/beverage beverage:init
现在,你可以通过调用 vendor/bin/beverage
来运行命令
每个命令都可以通过简写来调用: vendor/bin/beverage b:i
将与 vendor/bin/beverage beverage:init
具有相同的效果。
选项
你可以使用 --drinkmenu
选项来指定 drinkmenu.php
文件的位置,或者如果你已经重命名了它。
文件监视器
你可以定义一个文件监视器,以便在最近修改的文件上自动运行任务。
你需要在 drinkmenu.php
中导入 Awakenweb\Beverage\Watcher
模块,并创建一个专门的 watch()
任务。
function watch($output) { (new Watcher($output)) ->beforeTasks(new RandomListener()) ->afterTasks(new AnotherRandomListener()) ->watch('*.scss', ['compileScssAndMinifyCss'], ['scss']) ->run(); }
beforeTasks
和 afterTasks
方法允许你在文件更改时注册钩子,这些钩子将在任务执行前后被触发。
这些钩子必须实现 Awakenweb\Beverage\Watcher
Listener,它只需要一个 update()
方法。
通过允许一个 $output 参数,你为监视器提供了一种方式来告诉你何时触发任务以及何时完成。
你可以像其他任务一样启动监视器(vendor/bin/beverage beverage:run watch
)或使用专门用于监视文件的特殊任务:vendor/bin/beverage beverage:watch
贡献
错误
-
如果你发现了一个错误,并且有信心纠正它,请发送带有错误修复和用于识别错误的单元测试的 pull request。
-
如果您无法自行修复错误,请在此GitHub仓库中提交一个问题。
安全漏洞
- 如果您认为您在这个包中发现了安全漏洞,请在采取任何行动之前通过电子邮件联系Mathieu SAVELLI。
新功能
-
在直接向Beverage代码库添加新功能并提交Pull Request之前,请通过电子邮件联系Mathieu SAVELLI。如果这个功能被认为非常适合Beverage,您就可以自由地提交pull request。
-
如果您喜欢这个包,最好的做法是为Beverage提供新的精彩模块并通知我。我会将它们添加到这个readme文件中。
贡献者
- 主要开发者:Mathieu SAVELLI (mathieu.savelli@awakenweb.fr)
许可证
Beverage是在MIT许可证下发布的。