2016-07-26 7 views
2

Я работаю над приложением, где пространство имен «мета» имеет несколько подпространств имен, размещенных в разных каталогах. Возьмем в качестве примера ниже:композитор, загружающий пространство подзаголовков из разных каталогов

$loader = require(__DIR__ . '/vendor/autoload.php'); 
$loader->set('Foo\Bar', realpath(__DIR__ . "/src/123/Foo/Bar")); 
$loader->set('Foo\Baz', realpath(__DIR__ . "/src/abc/Foo/Baz")); 

«мета» пространство имен, конечно, Foo и суб-пространств имен Bar и Baz.

composer, похоже, не радует этого. Второе пространство имен игнорируется. Обратите внимание, что содержимое хранится в разных папках ниже src; 123 и abc, соответственно.

Невозможно ли таким образом присвоить пространства имен, используя composer?

Мне довольно сложно найти информацию об этом угловом корпусе.

ответ

1

Это возможно - с PSR-4 автозагрузчика (http://www.php-fig.org/psr/psr-4/, What is the difference between PSR-0 and PSR-4?):

$loader = require 'vendor/autoload.php'; 
$loader->setPsr4('Foo\\Bar\\', realpath(__DIR__ . '/src/123/Foo/Bar')); 
$loader->setPsr4('Foo\\Baz\\', realpath(__DIR__ . '/src/abc/Foo/Baz')); 

$bar = new Foo\Bar\BarTest(); 
$baz = new Foo\Baz\BazTest(); 
+0

Спасибо! Я подозревал, что ps4 будет ответом. :) – Kafoso

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

  • Нет связанных вопросов^_^