sminnee / pharout
此包已被 废弃 并不再维护。未建议替代包。
PHP CLI 工具的 Phar 编译器。源自 Composer 的编译脚本。
dev-master
2014-09-06 01:54 UTC
Requires
- symfony/finder: ~2.3
This package is auto-updated.
Last update: 2024-03-14 14:06:08 UTC
README
PharOut 是一个用于生成 PHP CLI 工具 Phar 分发的工具。它源自 Composer 源代码中的 Compiler.php 脚本,并被修改为更通用的工具。
为什么使用 PharOut?
将基于 PHP 的 CLI 工具作为 Phar 归档分发是一个很好的方式,但如果之前没有做过,创建可执行 Phar 文件的机制可能会有些神秘。我希望让开发者能够轻松地使用 symfony/console 等库来制作精炼的 CLI 工具,然后将它们分发给用户。
如何使用
PharOut 在如何创建您的项目方面并没有提供很多指导,但我的 CLI 项目结构大致如下
bin/
mytool
src/
MyNamespace/
MyTool.php
vendor/
composer.json
composer.lock
LICENSE
README.md
PharOut 设计得与 Composer 非常好地配合使用,因此我建议您使用它来管理依赖项。
要设置它,首先将 composer 作为开发依赖项包含到您的项目中,并创建一个空的 "bin/compile" 文件。这将生成 Phar 的命令。
compososer require --dev sminnee/pharout
touch bin/compile
chmod +x bin/compile
使用以下代码作为创建 bin/compile 文件的起点。简而言之,您创建一个 SilverStripe\PharOut\Compiler
对象,对其进行配置,然后调用 writePhar() 生成 Phar。
#!/usr/bin/env php
<?php
$projectPath = dirname(__DIR__);
require($projectPath . '/vendor/autoload.php');
// Compiler configuration
$compiler = new SilverStripe\PharOut\Compiler();
$compiler
->forProjectAt($projectPath)
->withExecutable("bin/mytool")
->withSourcePath("src")
->withComposerPackages(array(
"symfony/console",
))
->withInternalMessage("My Tool (c) 2014 Yours Truly")
;
$compiler->writePhar("mytool.phar");
现在,您可以从项目根目录运行 ./bin/compile
,并将创建或替换 mytool.phar
。
包装愉快!