我已经创建了一个Symfony2 Web应用程序的phar,但我在缓存文件夹方面遇到了一些麻烦。
我发现我可以mount将一个外部文件/文件夹放入一个phar中。这样可以解决我的问题,但我无法在PHP网站上获得示例。
我有一个包含index.php的phar:
<?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致命错误:未捕获的异常&#39; PharException&#39;带消息&#39; config.xml不是phar档案,无法挂载&#39;在/var/www/$projectname/index.php:3
我已经尝试了相对/绝对路径,更改权限但无法使其正常工作。另外,我如何将文件夹安装到phar中的工作示例将非常棒!
答案 0 :(得分:1)
首先检查此地点是否存在变量$projectname
(只需在echo $projectname;
之前运行Phar::mount
)。如果一切正常,那么改变
Phar::mount('phar://config.xml', '/var/www/$projectname/config.xml');
到
Phar::mount('phar://config.xml', "/var/www/{$projectname}/config.xml");
似乎变量$projectname
未转换为其值,因为您使用了单引号。