У меня есть применение в PHP с моей структурой mvc, и это следует следующей модели:
Namespace Diretorio Desc
Nautilus\ root/Nautilus/src/Nautilus_Web/ Aplicação principal
Nautilus\Service root/Nautilus/src/Nautilus_Service/ Serviços
Nautilus\Domain root/Nautilus/src/Nautilus_Domain/ Modelos e repositórios
Я стандартизирую свой проект в соответствии с PHP-фигой и согласно документации, пространство имен должно соответствовать физическому управлению.
Интересно, делается ли стандартизация в неправильной форме, так как классы должны включать Nautilus\Service и Nautilus\Domain из управления Наутилуса пространства имен, которым это было бы:
укоренитесь / Наутилус / src / Nautilus_Web/....
Если мое пространство имен называет Наутилус физическим управлением, это должно быть:
root/Nautilus/src/Nautilus_Web/Nautilus
нет? или затем повторно назначить пространство имен на Nautilus\Web
дайте управлению.../src/Nautilus_Web оно переписывалось бы, правильно?
Спасибо!
Я верю, чтобы продать три вопроса, тогда собираюсь ответить на них в заказе, который действительно больше причиняет боль: структура Управлений, пространства имен и содержание.
Как каждая структура или компонент / библиотека, он - владелец или сторонний, это - таможенный независимый политик PSR, от корня управления, обычно названного продавцом, имеет подуправление и, в нем, управлении для каждого ресурса:
|-\
| |-\Application
| |-\Application\Portal
| |-\Application\Portal\Models
| |-\Application\Portal\Views
| |-\Application\Portal\Controllers
| |-\Application\Portal
| |-\Application\Admin\Models
| |-\Application\Admin\Views
| |-\Application\Admin\Controllers
| |-\vendor
| |-\vendor\Symfony
| |-\vendor\Doctrine
| |-\vendor\Nautilus
Пространства имен структур или библиотек / компонент избегает немногого правило того, чтобы быть начатым с корня управления главным образом вследствие автопогрузчиков, кто почти всегда принимает его во внимание include_path, что должно быть изменено во время выполнения, чтобы включать, среди какой Вы, чтобы нуждаться, этот продавец управления:
set_include_path(
'.' . PATH_SEPARATOR . realpath( './vendor' )
);
Для конца, местоположения содержания. Как только Вы решаете две проблемы выше, Вы решаете в последний раз, что один также, таким образом, каждый автопогрузчик должен работать от корня управления и поскольку продавец уже делает часть include_path каждым разом Вы instanciar новый класс или импортировать в ресурсе (с использованием), при условии, что этот все еще не был объявлен в цели invocador (препятствие нет никакого вмешательства автопогрузчика), Вы будете всегда «помещаться» в rai\of Применение.
Другими словами, вообразите это Nautilus\Web\Domain
нужен некоторый ресурс Nautilus\Web\Service
. Даже это abos estiejam в абсолютно отдельных управлениях, оба будут находиться под крыльями того же отца пространства имен, Наутилуса
О! И иметь целью, за исключением модификации include_path, забывают относительно понятия относительных путей.;)