Установка папки в phar не работает

Я создал phar веб-приложения Symfony2, но у меня возникли проблемы с папками кеша.

Я обнаружил, что могу монтировать внешний файл/папку в phar . Это решило бы мою проблему, но я не могу заставить работать пример на сайте PHP.

У меня есть phar, который содержит index.php:

<?php
$configuration = simplexml_load_string(file_get_contents(
Phar::running(false) . '/config.xml'));
?>

Затем я включаю .phar со следующим кодом:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/var/www/$projectname/config.xml');
// now run the application
include 'phar-archive.phar';
?>

Все файлы существуют, но я получаю следующую ошибку:

Неустранимая ошибка PHP: необработанное исключение «PharException» с сообщением «config.xml не является phar-архивом, невозможно смонтировать» в /var/www/$projectname/index.php:3

Я уже пробовал относительные/абсолютные пути, меняя разрешения, но не могу заставить это работать. Кроме того, рабочий пример того, как я могу смонтировать папку в phar, был бы отличным!


person user158470    schedule 12.03.2014    source источник


Ответы (1)


Сначала проверьте, существует ли в этом месте переменная $projectname (просто запустите echo $projectname; перед Phar::mount). Если все ок, то меняй

Phar::mount('phar://config.xml', '/var/www/$projectname/config.xml');

to

Phar::mount('phar://config.xml', "/var/www/{$projectname}/config.xml");

Кажется, что переменная $projectname не преобразовалась в свое значение, потому что вы использовали одинарные кавычки.

person DLevsha    schedule 08.01.2016