我有一個在PHP中開發的問題。首先,我必須說我不是這個星球上有經驗的PHP開發人員。如何在PHP中包含命名空間文件?
我的代碼/問題是如下:
在文件Controllers\TestController.php
:
<?php
namespace My\Test\Controllers;
class TestController
{
public function HelloTest()
{
echo 'Hello!';
}
}
?>
當我想包括這個類在另一個PHP文件中像這樣
文件Models\TestModel.php
:
<?php
namespace My\Test\Models;
use My\Test\Controllers;
class TestModel
{
public function TestModelFunction()
{
$control = new TestClass();
$control->HelloTest();
}
}
?>
文件index.php
_
<?php
use My\Test\Models;
$model = new TestModel();
$model->TestModelFunction();
?>
,就不會工作...我會永遠得到以下錯誤:
Class 'TestModel' not found!
當我現在補充一下:
中的index.phpinclude_once 'Models/TestModel.php'
AND
include_once '..Controllers/TestController.php'
in TestModel.php
then then works ...
文件夾結構:
Project
|-Models
| TestModel.php
|-Controllers
| TestController.php
|index.php
但我真的需要指定每次文件所在的位置?
如果您一次提出一個問題,本網站效果最佳。請閱讀[FAQ](http://stackoverflow.com/faq)。另一個強烈推薦的閱讀是:[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)。 - 你的代碼對於命名空間順便說一下看起來不錯,但是請記住,在你使用它之前,你需要首先在類中包含這個文件。 – hakre
「,但請記住,在使用它之前,您需要首先將該文件包含在該類中」意味着我總是必須編寫include_once? – ok3n0b1
通常Doctrine2應該自動處理(這就是所謂的自動加載)。我對Doctrine2不太瞭解,以至於我可以直接告訴你你的情況出了什麼問題(或者先看哪裏),但是我已經編輯了你的問題,希望它能夠更清晰並且會吸引更多的用戶。 – hakre