我尝试根据命令定义部署过程:
php <phar_file_deployed_on_server>.phar
此命令生成phar archive外部的index.php文件。
index.php文件将充当phar存档中N-file.php的“瘦”调度程序。
生成的index.php文件示例:
<?
$requiredFile = "phar://<phar_file_deployed_on_server>.phar";
/**
* For example index.php can check $_GET array and dispatch
* to file inside Phar archive.
**/
if (array_key_exists("getParameter", $_GET))
$requiredFile = $requiredFile . "/" . $_GET['getParameter'] . ".php";
else
<handling_of_else_condition>;
require_once $requiredFile;
__HALT_COMPILER();
?>
上述调度规则就是一个例子。
我的想法仅面向部署过程。该示例提供了check $ _GET数组,但在部署期间可能会生成更复杂的规则(例如,通过命令行参数)。
我创建了一个PHP Web应用程序并将其压缩到Phar 格式易于部署。
可以在生产中无需解压缩的情况下执行应用程序 机器,因为我已经计划了一个链接到的
index.php
文件 在Phar档案中的应用程序。要在部署期间生成
index.php
文件,有必要 将以下命令启动到生产机器shell中:php <just_deployed_phar_file>
存根文件中的代码以方式生成
index.php
文件 引用刚刚安装的Phar存档。这是使用存根文件的正确方法吗?
答案 0 :(得分:1)
您可以使用存根文件执行您想要执行的任何操作。执行phar时(使用php xxx.phar) 如果我的问题是正确的,那么您计划将phar文件用作整个应用程序的安装程序。它安装index.php,然后使用phar加载您的应用程序。这样做会有所作为,但还有更好的方法:
我认为你正在搜索webPhar,它就像你的应用程序的前控制器一样。如果您在phar的存根中使用webPhar(),则来自您的网络服务器的请求将被路由到您的phar。