bushbaby / zf2-module-phing-service
此软件包已被废弃,不再维护。未建议替代软件包。
Phing 的 Zend Framework 2 模块,基于 Apache Ant 的 PHP 项目构建系统或构建工具。
2.0.0
2015-02-03 15:02 UTC
Requires
- php: >=5.3.3
- phing/phing: ~2.4,>=2.4.13
- symfony/process: ~2.0
- zendframework/zendframework: ~2.0
Requires (Dev)
- phpunit/phpunit: ~4.1
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2021-07-23 21:23:40 UTC
README
介绍
BsbPhingService 是一个为 Zend Framework 2 定制的模块,它允许您在 ZF2 项目中执行 phing 构建文件。
要求
- Zend Framework 2 >=2.0
- Phing >=2.4.13
- 通过 proc_open 从 PHP 执行命令行程序的能力。
安装
使用 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
以获取一个工作示例。