C: \ XAMPP \ HTDOCS содержит controller.php и ApplicationHelper.php. C: \ xampp \ htdocs \ сайт содержит index.php.Имея проблему с пространствами имен и set_include_path() в PHP
Здесь ошибка я получаю:
Фатальная ошибка: Class 'сайт \ контроллер \ ApplicationHelper' не найден в C: \ XAMPP \ HTDOCS \ controller.php на линии 17
I «новичок во всем бизнесе в пространствах имен, но я не уверен на 100%, что за этим стоит. Мне кажется, что он не нашел ApplicationHelper.php, хотя я установил путь включения в эту папку. Он работает, если я непосредственно включаю ApplicationHelper.php в Controller.php. Здесь (уместно) код:
index.php
set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\xampp\htdocs');
require('Controller.php');
\site\controller\Controller::run();
Controller.php
namespace site\controller;
class Controller {
private $applicationHelper;
private function __construct() {}
static function run() {
$instance = new Controller();
$instance->init();
}
function init() {
$applicationHelper = ApplicationHelper::instance();
$applicationHelper->init();
}
}
ApplicationHelper.php
namespace site\controller;
class ApplicationHelper {
private static $instance;
private function __construct() {}
static function instance() {
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
function init() {
}
}
Спасибо за помощь!
Спасибо. Я понимаю это сейчас. – birderic
Было бы предпочтительнее размещать это в index.php или каждом классе, который его использует? – birderic