【发布时间】:2012-09-10 18:03:29
【问题描述】:
我尝试根据命令定义部署过程:
php <phar_file_deployed_on_server>.phar
此命令在 phar 存档外部生成一个 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();
?>
以上不屑一顾的规则是一个例子。
我的想法是针对简单的部署过程。示例提供了检查 $_GET 数组,但在部署期间可能会生成更复杂的规则(例如通过命令行参数)。
我创建了一个 PHP Web 应用程序并将其压缩到 Phar 便于部署的格式。
应用程序无需解压即可在产品上执行 机器,因为我已经计划了一个链接到 Phar 档案中的应用程序。
要在部署期间生成
index.php文件,需要 将以下命令启动到生产机器外壳中:php <just_deployed_phar_file>存根文件内的代码以方式生成
index.php文件 参考刚刚安装的 Phar 存档。这是使用存根文件的正确方法吗?
【问题讨论】:
-
您至少应该展示一些正在执行您描述的其他工作的代码,这很难从您的问题中说出来。
-
您可以在此处获取有关存根的一些信息:php.net/manual/en/phar.fileformat.stub.php 您基本上可以在存根中做任何您想做的事情,但默认存根会启动 index.php 您的问题目前还不够清楚。
标签: php deployment stub phar