Возможно ли добавить? (namespace)

Печать RSS
318

Автор
Пацак
0
Добрый вечер))
Есть такой код:
<?php

define('DOCROOT', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
set_include_path(DOCROOT);
spl_autoload_extensions('.php');
function my_autoload($class) {
  $path = str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
  require_once($path);
}
spl_autoload_register('my_autoload');

?>
далее я вызываю класс Test находящийся в DOCROOT/system/classes/Test.php
<?php

use system\classes\Test;
new Test();

?>
Но мне хотелось бы видеть use CM\system\classes\Test;
Возможно "замутить" такое??
А

Оранжевые штаны
0
не понял задачи
Автор
Пацак
0
2. Башка, ну я хочу добавить перед всеми пространствами имен CM тоесть
<?php
namespace system\classes;
?>
Должна превратиться в
<?php
namespace CM\system\classes;
?>
А

Оранжевые штаны
0
Перемести тогда все в каталог CM или поменяй автозагрузчик так:
<?php
function my_autoload($class) {
  $path = '\CM'.str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
  require_once($path);
} 
Автор
Пацак
0
4. Башка, в том то все и дело что структуру я хочу оставить как есть))

Добавлено через 02:02 сек.
Дабы не плодить тем отпишу здесь....
поменял автозагрузчик на
spl_autoload_register(function ($class) {
    require_once str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
});
Выдало Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2619240345 bytes) in /var/www/kputu258/data/www/srv16.ru/system/CodeMania.php on line 10
А

Оранжевые штаны
0
Что то ты левое подключаешь, и зачем используешь DIRECTORY_SEPARATOR?
Автор
Пацак
0
6. Башка,
не подключаю)) ниже скрипт))
так в виндовс разделитель \ а в остальных /
Прикрепленные файлы:
codemania.zip (3.75Kb)
А

Оранжевые штаны
0
винда нормуль работает и с / на сколько я помню
И что я должен увидеть в этом архиве?

Добавлено через 03:38 сек.
Подозреваю что у тебя там рекурсивная ссылка, от того и повисает
Автор
Пацак
0
8. Башка, то что лишнего там нет ничего))
Значит хомяк чтото подключает....
А

Оранжевые штаны
0
Я не хочу у себя запускать твой скрипт, но тебе посоветовал бы написать в функции автоподключения:
function custom_autoload($className) {
$path = str_replace('\\', DIRECTORY_SEPARATOR, $className).'.php';
echo $path;
require_once($path);
}
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск