我想使用php交互模式作为Zend应用程序的命令行界面。我目前可以通过执行php -a
和来实现这一点,然后在交互模式启动后执行以下php代码:
$_SERVER[DOCUMENT_ROOT]='<some_path>';
require_once('index.php');
执行完这两行之后,我就可以调用zend应用程序中的控制器/服务等并查看输出了。
我想要的是一种将所有三个命令包含在一个命令/脚本中的方法,这样就可以启动交互模式,执行两行php代码,并且在加载zend应用程序时留下一个交互式php提示。即,我可以键入CCD_ 2,并且在其末尾我具有交互式提示。
我尝试过在我的两个php命令中使用管道,以及将文件重定向到php -a
命令中,但都不起作用。
这可能吗?
编辑
我查看了有问题的解决方案,我的问题可能与(此处)重复。然而,在做那个问题中给出的例子时,我没有得到相同的结果。该问题显示了一个简单的示例,其中文件中的$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
我想这可能只是环境差异,但这种差异会是什么?
问题中的示例有点偏离。原因(无论如何,在我的环境中)是foo.php
在文件开头没有<?php
标记。当我把它加在$x = true;
上方的一行上时,一切都如预期的那样。
foo.php
最终看起来像:
<?php
$x = true;