bushbaby/zf2-module-phing-service

此软件包已被废弃,不再维护。未建议替代软件包。

Phing 的 Zend Framework 2 模块,基于 Apache Ant 的 PHP 项目构建系统或构建工具。

2.0.0 2015-02-03 15:02 UTC

This package is auto-updated.

Last update: 2021-07-23 21:23:40 UTC


README

介绍

BsbPhingService 是一个为 Zend Framework 2 定制的模块,它允许您在 ZF2 项目中执行 phing 构建文件。

要求

更新日志

Latest Stable Version Total Downloads Latest Unstable Version License

[Build Status](Build Status) Code Coverage Scrutinizer Code Quality Dependency Status

安装

使用 Composer

获取此项目有效副本的推荐方法是修改项目根目录下的 composer.json。这将处理依赖关系。

"require":{
    "bushbaby/zf2-module-phing-service":"~2.0",
 },

然后更新

cd /to/your/project/directory
./composer.phar update -v

配置

  • 打开 ./configs/application.config.php 并将 'BsbPhingService' 添加到 'modules' 参数中以在您的应用程序中注册模块。
  • 可选地,将 ./vendor/bushbaby/zf2-module-phing-service/config/bsbphingservice.global.php.dist 复制到 ./config/autoload/bsbphingservice.global.php 以覆盖一些默认设置。

如何使用 BsbPhingService

使用 BsbPhingService 只有一个命令:$service->build($target, $phingOptions);

从版本 2.0.0 开始,调用 'build' 时返回一个 Symfony Process 组件 的实例。

$process = $phingService->build('target', array('buildFile' => 'build.xml'));
$process->getOutput();

在 'build' 中添加了第三个参数 'immediate',允许您在需要时检索一个配置但未执行的 Process 实例进行更高级的过程管理。例如,获取实时反馈或异步运行构建。

$process = $phingService->build('target', array('buildFile' => 'build.xml'), false);
$process->run(function ($type, $buffer) {
    if (Process::ERR === $type) {
        echo 'ERR > '.$buffer;
    } else {
        echo 'OUT > '.$buffer;
    }
});

请参阅 Symfony Process 组件 的官方文档。

控制器示例

您可以手动创建服务实例,但建议从 ServiceLocator 获取已配置的实例。ServiceLocator 在每个控制器中都是可用的,因此检索是简单的。

public function indexAction() {
    $options = array('buildFile' => __DIR__ . '/../../../data/build-example.xml');

    $buildResult = $this->getServiceLocator()->get('BsbPhingService')->build('show-defaults dist', $options);

    if ($buildResult->getExitCode() > 0) {
  	    // problem
        echo $buildResult->getCommandline();
        echo $buildResult->getErrorOutput();
    } else {
        // yeah
        echo $buildResult->getOutput();
    }

    $view = new ViewModel(array('process'=>$buildResult));

    return $view;
}

要快速体验,您可以启用模块.conf.php 中定义的路线,并将浏览器指向 http://yourhost/phingservice 以获取一个工作示例。