У меня проблема с 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!
Когда я теперь добавить:
include_once 'Models/TestModel.php'
в index.php
И
include_once '..Controllers/TestController.php'
in TestModel.php
затем он работает ...
Папки:
Project
|-Models
| TestModel.php
|-Controllers
| TestController.php
|index.php
Но я действительно должен указывать каждый раз, когда эти файлы?
Этот сайт работает лучше всего, если вы задаете один вопрос одновременно. Пожалуйста, прочитайте [FAQ] (http://stackoverflow.com/faq). Еще одно рекомендуемое чтение: [Что вы пробовали?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/). - Ваш код хорошо подходит для namespacing btw, но имейте в виду, что перед тем, как вы сможете его использовать, сначала нужно добавить файл с классом. – hakre
", но имейте в виду, что вам нужно сначала включить файл с классом, прежде чем вы сможете его использовать." Значит, мне всегда приходится писать include_once? – ok3n0b1
Обычно Doctrine2 должен позаботиться об этом автоматически (это называется автозагрузкой).Я не так хорошо разбираюсь в Doctrine2, что могу прямо сказать вам, что в вашем случае (или где искать в первую очередь), но я отредактировал ваш вопрос, чтобы он, надеюсь, был более ясным и привлечет больше пользователей. – hakre