2010-05-13 16 views
0

在執行期間,從命令行運行的腳本中,是否有一種方法可以從PHP代碼內部讀入eval-print循環?也就是說,像php -a或phpsh?或者我是否必須重新從頭開始執行REPL?我找不到任何辦法。從PHP代碼進入read-eval-print循環?

爲了澄清:我需要這樣做的原因是,我想在REPL啓動後自動將所有文件包含在我的項目中,而不是手動包含所有內容。

+0

你爲什麼要這麼做?啓動內置的REPL並執行腳本文件不是更容易嗎? – soulmerge 2010-05-13 20:11:50

+0

澄清 - 可能有很多包含我想要跨越大型項目執行的操作,並且REPL啓動後可能需要大量輸入。鑑於PHP REPL在遇到致命錯誤時會崩潰,因此很多容易出錯的輸入都是一個問題。 – 2010-05-13 20:16:07

回答

1

,當你進入PHP的外殼只需加載文件...

php -a

<?php require("core.php"); ?>

core.php中:

require_once("somefile.php"); 
require_once("anotherfile.php"); 
require_once("yetanotherfile.php"); 
dosomething(); 
// Here, it'll drop back to the shell. 

如果你有一個核心文件流程通過調用一個函數的請求,當它被遠程需要時,可以繞過該函數調用,使用:

if (basename($argv[0]) == basename(__FILE__)) { process_request(); } 
+0

有沒有辦法運行一個shell腳本,將require(「core.php」)行回顯到shell中,然後將控制權交還給用戶?我試過這樣做,但在回聲後關閉。 – 2010-05-14 17:19:50