Я пытаюсь создать очень простое приложение PHP CLI, которое можно запустить как файл phar из командной строки:
# php myProject.phar
Это то, что я пробовална данный момент:
Мой проект
Мой проект находится в каталоге с именем MyProject
, и в нем есть два файла:
|-- createPhar.php
`-- bootstrap.php
bootstrap.php
Файл bootstrap.php
содержит следующее:
<?php
print phpversion() . PHP_EOL;
print 'i am some script' . PHP_EOL;
Когда я запускаю этот скрипт из командной строки Ubuntu:
# cd MyProject
# php bootstrap.php
Я получаю следующий вывод:
5.3.2-1ubuntu4.9
i am some script
createPhar.php
Файл createPhar.php предназначен для превращения проекта в архив Phar.Это выглядит так:
<?php
$phar = new Phar('MyProject.phar');
$phar->addFile('bootstrap.php');
$phar->setStub( $phar->createDefaultStub('bootstrap.php') );
Когда я запускаю этот скрипт ...
# php createPhar.php
... в каталоге моего проекта создается новый файл с именем MyProject.phar
.
|-- bootstrap.php
|-- createPhar.php
`-- MyProject.phar
Теперь вот проблема
Когда я запускаю файл phar ...
# php MyProject.phar
... Я ожидаю увидеть тот же вывод, который получилкогда я запустил скрипт bootstrap.php
.
Вместо этого я ничего не вижу.Нет вывода вообще.Это означает, что мой сценарий bootstrap.php
не включен в заглушку по умолчанию, созданную $phar->createDefaultStub('bootstrap.php')
Я думаю, что я неправильно понимаю, как создаются Phars и их заглушки.Не могли бы вы объяснить, где я ошибся.