我正在尝试使用 Symfony2 控制台库构建 CLI 工具。我有一些基本的工作,现在我想把它打包成一个 phar。我已经阅读了一些示例,但我看到的示例非常简单(3 个文件,没有命名空间等)。
在我的src/
目录中,我有以下内容:
上面src/
我有一个console.php
我执行来运行应用程序。我也有一个vendors/
目录,因为我正在使用 composer 安装依赖项。console.php
很简单:
#!/usr/bin/env php
<?php
set_time_limit(0);
$loader = require 'vendor/autoload.php';
use Symfony\Component\Console\Application;
use Bendihossan\Pinfo\Command\EnvironmentCommand;
use Bendihossan\Pinfo\Command\ExtensionsCommand;
use Bendihossan\Pinfo\Command\RunAllCommand;
$console = new Application();
$console->add(new RunAllCommand());
$console->add(new EnvironmentCommand);
$console->add(new ExtensionsCommand);
$console->run();
根据我对构建 phar 的了解(很少),我认为我需要将其console.php
作为存根和其他所有内容src/
以及我在vendors/
.
查看phpmaster.com上的示例代码,他们使用 手动指定要包含在 phar 中的每个文件file_get_contents
,但我需要维护我的目录结构以使用作曲家的自动加载器并保持 PSR-0 目录结构。
有没有一种简单的方法来创建 .phar 并在其中维护我的目录结构,以便我仍然可以使用 composer 的自动加载器?