如何在PHP中包含名称空间文件?
我在PHP开发中遇到了一个问题。首先我必须说,我不是这个星球上经验丰富的PHP开发人员 我的代码/问题如下: 在文件如何在PHP中包含名称空间文件?,php,apache2,doctrine-orm,xampp,Php,Apache2,Doctrine Orm,Xampp,我在PHP开发中遇到了一个问题。首先我必须说,我不是这个星球上经验丰富的PHP开发人员 我的代码/问题如下: 在文件Controllers\TestController.php中: <?php namespace My\Test\Controllers; class TestController { public function HelloTest() { echo 'Hello!'; } } ?> <
Controllers\TestController.php
中:
<?php
namespace My\Test\Controllers;
class TestController
{
public function HelloTest()
{
echo 'Hello!';
}
}
?>
<?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();
?>
但我真的必须每次指定文件的位置吗?名称空间从逻辑上将代码分隔为不同的。。。嗯,名称空间。它与包含包含该名称空间代码的文件无关。因此,是的,除了给文件命名外,您确实需要以某种方式(例如自动加载器)包含文件。是的,您必须始终包含定义类的文件 名称空间只是将类打包在一起的一种方式,而不是自动包含PHP文件的方式
如果您正在寻找一种在需要时自动包含PHP文件的方法,请查看。另一种方法是使用autoloader()。你可以在那里找到一些好的开源自动加载器。如果你一次只问一个问题,这个网站效果最好。请仔细阅读。另一个强烈建议的阅读是:。-顺便说一句,您的代码对于名称空间看起来不错,但请记住,在使用它之前,您需要先将文件包含在类中。“但请记住,在使用它之前,您需要先将文件包含在类中”意味着我必须始终编写一次include_?通常Doctrine2应该自动处理这一问题(这称为自动加载)。我对Doctrine2不太熟悉,我不能直接告诉你你的情况有什么问题(或先看哪里),但我编辑了你的问题,希望它更清晰,吸引更多用户。不要过早接受答案。如果你接受一个,你就不会得到更多(正确/完整)一个。谢谢你的提示。但是anwser beyond对于这个问题已经足够好了。我想我必须为这个问题写另一个问题。
Project
|-Models
| TestModel.php
|-Controllers
| TestController.php
|index.php