如何在启动时将命令传递给php交互模式?

时间:2016-04-07 20:47:09

标签: php bash zend-framework

我想使用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

我想这可能只是一个环境差异,但那会有什么不同呢?

1 个答案:

答案 0 :(得分:0)

我在问题中的例子略有偏差。原因(在我的环境中无论如何)是foo.php在文件开头没有<?php标记。当我在$x = true;之上的一行上添加它时,它就会按预期运行。

foo.php最终看起来像:

<?php
$x = true;
相关问题