我有一个在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