Да, это возможно, хотя я не знаю веских причин для такой вещи - это только усложняет понимание структуры пространств имен.
Ошибка 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();