我想使用php交互模式作为我的Zend应用程序的命令行界面。我现在可以通过在交互模式启动后执行php -a
和然后执行以下php代码来执行此操作:
$_SERVER[DOCUMENT_ROOT]='<some_path>';
require_once('index.php');
执行这两行之后,我可以在我的zend应用程序中调用控制器/服务/等,并查看输出。
我想要的是一种方法将所有三个命令都包含在一个命令/脚本中,以便交互模式启动,两行php代码将被执行,我将留下一个交互式的PHP提示符我的zend应用程序已加载。即我可以输入./start_my_app
,在结尾处我有互动提示。
我已尝试在我的两个php命令中使用管道系统以及将文件重定向到php -a
命令,但都没有工作。
这可能吗?
修改
我查看了有问题的解决方案,我的问题可能与(here)重复。但是,在进行该问题中给出的示例时,我得不到相同的结果。该问题显示了一个简单示例,其中$x
在文件中设置为TRUE
,该文件预先设置为交互模式,然后在交互模式下评估$x
以显示该文件具有价值TRUE
。
然而,在我的环境中,我得到了不同的结果:
# cat foo.php
$x = true;
# php -d auto_prepend_file=foo.php -a
Interactive mode enabled
$x = true;
php >
php > var_dump($x);
NULL
我想这可能只是一个环境差异,但那会有什么不同呢?
答案 0 :(得分:0)
我在问题中的例子略有偏差。原因(在我的环境中无论如何)是foo.php
在文件开头没有<?php
标记。当我在$x = true;
之上的一行上添加它时,它就会按预期运行。
foo.php
最终看起来像:
<?php
$x = true;