PHP PHAR: еще раз о правильном создании .phar

Я пытаюсь создать архив PHAR с исполняемой заглушкой. Код:

<?php
$phar = new Phar('test.phar');
$phar->buildFromDirectory('files/');
$phar->setStub($phar->createDefaultStub(file_get_contents('st.php'), 'install.php'));
?>

Содержимое «st.php» (заглушка по умолчанию):

#!/usr/bin/php
<?php Phar::mapPhar(); include("phar://test.phar/install.php"); __HALT_COMPILER();

Внутри «файлов» находится только один файл — «install.php»

<?php
echo "The Installer is running right now.";
?>

Процесс компиляции PHAR выполняется без ошибок. Но когда я пытаюсь включить созданный архив PHAR

include_once('phar://test.phar');

возникает ошибка:

PHP Parse error:  syntax error, unexpected ''#!/usr/bin/php\r' (T_ENCAPSED_AND_WHITESPACE) in D:/WebServer/domains/modinst/www/test.phar on line 110

Вопрос в том, как создать архив PHAR для использования в качестве ресурса PHP, который я могу просто «включить»?

2

Решение

Вы не можете использовать строку shebang в заглушке. Это ограничение текущих версий PHP.

Удалите его, и ошибка исчезнет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]