Я экспериментирую в создании инструментов CLI с помощью библиотеки консоли Symfony2. У меня есть что-то основное, и теперь я хочу упаковать его как phar. Я прочитал несколько примеров, но те, которые я видел, очень просты (3 файла, не пространства имен и т.д.).
В моем каталоге src/
у меня есть следующее:
Выше src/
У меня есть console.php
, который я запускаю для запуска приложения. У меня также есть vendors/
dir, поскольку я использую компоновщик для установки зависимостей. 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 и поддерживать структуру каталогов внутри него, поэтому я все еще могу использовать автозагрузчик композитора?