【问题标题】:Convert Web Application (ZF2) to PHAR将 Web 应用程序 (ZF2) 转换为 PHAR
【发布时间】:2014-09-12 23:50:16
【问题描述】:

我知道如何将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 package file)文件格式除外)


更新:从整个应用程序创建 Phar

create-phar.php

$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 文件,而是在浏览器上显示空白页。我该如何解决这个问题?

提前致谢

【问题讨论】:

  • 看看here。恕我直言,打包整个应用程序也不是一个好主意。第一,在作曲家时代,它会更难开发,第二——据我所知APC不支持phar,所以你会遇到很大的性能瓶颈。
  • 我喜欢你的问题,这对于想要隐藏其代码以便将其交付给公司的开发人员很有用。
  • @BrunoQuintanaFleitas Not really

标签: php zend-framework zend-framework2 phar


【解决方案1】:

我将phorkie 部署为.phar 文件。

有一些事情需要考虑:

  1. 打包.phar 中的所有文件 - php 和静态资产文件(js、css、png、jpg)。 I use phing 这样做。不要忘记依赖项。
  2. 您需要一个运行 Phar::webPhar()stub 文件,该文件负责发送 HTTP 标头
  3. 编写您自己的.htaccess 重写规则解释器,因为Phar::webPhar() 不会自行解析nice-path。我did that already
  4. 手动处理为静态文件发送缓存标头
  5. 希望您(或您的用户)不会遇到Phar::webPhar 错误之一:
    1. Symlinked files
    2. No HEAD, PUT or DELETE support
    3. Redirection loop with FPM(已在 git 中修复)
  6. 希望您的用户的 web server handles .phar files(不会;neither Debian nor Fedora 提供该配置)
  7. 希望用户的 Web 服务器正确配置为处理 .phar 附加了 PATH_INFO (/path/to/file.phar/foo/bar.png) 的文件,如 http://p.cweiske.de/122

让 phorkie 从.phar 运行花了我两个星期的晚上。现在它基本上可以工作了,它仍然不是一个即插即用的解决方案,因为 Web 服务器的默认配置与 .phar 不兼容。

【讨论】:

  • 您好 cweiske,感谢您的回复。并希望它能解决我的问题。
  • 一旦我为您的回答创建自己的 zf2 phar file.btw ++,我将接受您的回答
  • 嗨@cweiske,你能帮我为我的create-phar.php 文件设置存根吗?我更新了我的问题,请调查一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多