gpt4 book ai didi

php - 将 Web 应用程序 (ZF2) 转换为 PHAR

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:29 25 4
gpt4 key购买 nike

我知道如何将 php 文件转换为 phar 文件。

$phar = new PHAR('app.phar');
$phar->addFile('file1.php');
$phar->addFile('file2.php');

我认为它只对将 POPO 转换为 PHAR 有用。

我的问题

是否可以将整个 Zend Framework 2 Web 应用程序转换为 PHAR 文件?如果是,那么如何?

(或)

如何将 Zend framework2 web 应用程序打包成一个包? (.zpk(zend studio package file)文件格式除外)


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

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

提前致谢

最佳答案

我部署 phorkie作为 .phar 文件。

有一些事情需要考虑:

  1. 打包 .phar 中的所有文件 - php 和静态 Assets 文件(js、css、png、jpg)。 I use phing要做到这一点。不要忘记依赖项。
  2. 您需要一个运行Phar::webPhar() stub 文件,它负责发送HTTP header
  3. 编写您自己的 .htaccess 重写规则解释器,因为 Phar::webPhar() 不会自行解析 nice-path。我 did that already .
  4. 手动发送静态文件的缓存 header
  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. 希望用户的网络服务器正确配置为处理 .phar 文件附加了 PATH_INFO (/path/to/file.phar/foo/bar .png), 如 http://p.cweiske.de/122

.phar 运行 phorkie 花了我两个星期的晚上。现在它基本上可以工作了,但它仍然不是一个 drop-phar-and-play 解决方案,因为 Web 服务器的默认配置不能很好地与 .phar 配合使用。

关于php - 将 Web 应用程序 (ZF2) 转换为 PHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com