2014-09-04 3 views
0

Я пытаюсь включить много файлов, содержащих функции, классы и вызовы, но я хотел бы поместить все в пространство имен PHP. Моя проблема: все файлы являются частью другого ядра веб-приложения. Поэтому я не могу редактировать файлы. Есть ли способ tu объявить пространство имен глобально для списка файлов? Нечто подобное:Пространство имен PHP для нескольких файлов

namespace mynamespace { 
    include_once("file1.inc.php"); 
    include_once("file2.inc.php"); 
    include_once("file3.inc.php"); 
    ... 
} 

Конечно, я попробовал этот код и он не работает; все мои попытки потерпели неудачу, когда первая строка включает файлы, в которых пространство имен замещает mynamespace ;.

ответ

1

Нет, это невозможно. Каждому файлу необходимо объявить свое собственное пространство имен; вы не можете заставить что-то находиться в другом пространстве имен, используя внешний код. (Некоторые хаки, такие как runkit или такие, вероятно, позволят вам возиться с этим, но я бы рассматривал это вне регулярной области PHP как языка.)

+0

Кажется логичным, но я думал, что если вы можете включить файл , вы можете установить его пространство имен. Большое спасибо за ваш быстрый ответ! – Ludovic

+0

Подумайте, что пространства имен являются частью имени класса/функции. Тогда, может быть, более очевидно, что вы не можете волей-неволей переименовать вещи. – deceze

Смежные вопросы