2016-07-07 18 views
1

從一個普通的php文件調用php工作正常,但如果調用是從包含類的php文件中調用失敗。任何解決方案來自php類文件的八度守護進程

require_once "/demo/src/AppBundle/Controller/Octave_lib.php"; 
class DefaultController extends Controller 
{ 
    /** 
    * @Route("/", name="homepage") 
    */ 
    public function indexAction(Request $request) 
    { 
     ***$octave=new Octave(false);*** 

導致「139命令沒有成功運行

回答

1

我只能假設的原因是因爲命名空間的。

正如你在AppBundle\Controller命名空間,當你使用new Octave它會尋找該類在相同的命名空間(AppBundle\Controller\Octave),我不會找到,因此,會引發錯誤。

您有2個選項..

添加「使用」,然後繼續做的事情,你是...

namespace AppBundle\Controller; 

use Octave; 

class DefaultController extends Controller 

或添加\以表明類是在全局命名空間...

$octave = new \Octave(false); 
+0

大&謝謝!我不得不將一個名爲'classes'的文件夾複製到AppBundle/Controller文件夾中,然後執行「使用Octave」使其工作 – Tims

+0

src目錄中的所有內容都會自動加載,因此您可以將它們放在那裏,它也可以工作。如果你不想混淆AppBundle/Controller'目錄。 – qooplmao

+0

現在我已經將Octave文件放在AppBundle/Controller文件夾本身中。用一個名爲Model的類創建了一個Model.php文件。其中的函數返回$ sum。命名空間設置爲AppBundle \ Controller。在控制器中,我說include(「Model.php」);使用模型;然後$ model = new Model();崩潰服務器。爲什麼? – Tims