将Web应用程序(ZF2)转换为PHAR
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Web应用程序(ZF2)转换为PHAR相关的知识,希望对你有一定的参考价值。
我知道如何将php文件转换为phar文件。
$phar = new PHAR('app.phar');
$phar->addFile('file1.php');
$phar->addFile('file2.php');
我认为它只对将POPO转换为PHAR非常有用。
我的问题
是否可以将整个Zend框架2 Web应用程序转换为PHAR文件?如果是,那怎么样?
(要么)
如何将Zend framework2 Web应用程序打包到一个包中? (.zpk(zend studio包文件)文件格式除外)
Updated: creating Phar from entire application
创建-Frkphp
$basePath = /path/to/;
$path = /path/to/application;
$phar = new Phar ('project.phar');
$phar->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)), $basePath);
$phar->setStub("<?php
Phar::webPhar('project', 'public/index.php');
include 'phar://project/public/index.php';
__HALT_COMPILER();
?>");
的index.php
<?php
include 'project.phar';
?>
题:
当我运行index.php时,它不会重定向到实际的public / index.php文件,而是在浏览器上显示空白页面。我该如何解决这个问题?
提前致谢
答案
我将phorkie部署为.phar
文件。
有一些事情需要考虑:
- 打包
.phar
中的所有文件 - php和静态资产文件(js,css,png,jpg)。 I use phing这样做。不要忘记依赖项。 - 您需要一个运行
Phar::webPhar()
的存根文件,它负责发送HTTP标头 - 编写自己的
.htaccess
重写规则解释器,因为Phar::webPhar()
不会自行解决好路径问题。我did that already。 - 手动处理发送静态文件的缓存标头
- 希望您(或您的用户)不会遇到其中一个
Phar::webPhar
错误: Symlinked files No HEAD, PUT or DELETE support Redirection loop with FPM(已在git中修复) - 希望你的用户的web server handles
.phar
files(它不会; neither Debian nor Fedora发货那个配置) - 希望用户的Web服务器正确配置为处理附加
.phar
(PATH_INFO
)的/path/to/file.phar/foo/bar.png
文件,就像在http://p.cweiske.de/122中一样
从.phar
开始运行phorkie让我度过了两个星期的晚上。现在它基本上工作了它仍然不是一个drop-phar-and-play解决方案,因为web服务器的默认配置与.phar
不相称。
以上是关于将Web应用程序(ZF2)转换为PHAR的主要内容,如果未能解决你的问题,请参考以下文章
结合两个代码片段?将用户输入的 Youtube url 转换为嵌入 url,然后将 iframe src 替换为转换后的 url