awakenweb/beverage

此包已被废弃且不再维护。没有建议的替代包。

PHP 任务运行器

dev-master 2019-01-09 23:36 UTC

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。

先决条件

安装

将以下内容添加到你的 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();
}

beforeTasksafterTasks 方法允许你在文件更改时注册钩子,这些钩子将在任务执行前后被触发。

这些钩子必须实现 Awakenweb\Beverage\WatcherListener,它只需要一个 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文件中。

贡献者

许可证

Beverage是在MIT许可证下发布的。