Различные пространства имен для основной папки и подпапки

Можно ли сделать что-то вроде:

"psr-4": {
"App\\": "src/",
"Tech\\": "src/Tech/"}

Как вы видите, есть App пространство имен для src папка, но в src/Tech/ должен быть еще один Tech Пространство имен. Я пробовал это, но всегда получаю ошибку:

Cannot declare class, because the name is already in use

0

Решение

Да, это возможно, хотя я не знаю веских причин для такой вещи — это только усложняет понимание структуры пространств имен.

Ошибка Cannot declare class, because the name is already in use вероятно, вызвано неоднозначностью FQN, например, если у вас есть файл:

<?php

namespace App;

use Tech\MyClass;

$myClass =  new MyClass();

И у тебя есть App\MyClass затем импортировать для MyClass неоднозначно — new MyClass() может означать new \App\MyClass() или же new \Tech\MyClass(), Вам необходимо использовать псевдонимы в этом случае:

<?php

namespace App;

use Tech\MyClass as TechMyClass;

$myClass =  new MyClass();
$myTechClass =  new TechMyClass();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]