【发布时间】:2016-10-04 01:29:40
【问题描述】:
我正在尝试使用 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 上的示例代码,他们使用file_get_contents 手动指定要包含在phar 中的每个文件,但我需要维护我的目录结构以使用composer 的自动加载器并保留到PSR-0 目录结构。
是否有一种简单的方法可以创建 .phar 并在其中维护我的目录结构,以便我仍然可以使用 composer 的自动加载器?
【问题讨论】:
标签: php packaging composer-php phar symfony-components