За последние 24 часа нас посетили 17058 программистов и 1834 робота. Сейчас ищут 1650 программистов ...

Подгрузка через composer

Тема в разделе "Прочие вопросы по PHP", создана пользователем Зверь, 23 июл 2013.

  1. Зверь

    Зверь Активный пользователь

    С нами с:
    2 ноя 2010
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Планирую собрать часто используемые классы на github-е в репозитории, объединил их в одно namespace и юзать с помощью composer-а, чтобы автоматом подружать где надо. Сам репозитории пердставляет собой просто папку i3bepb с классами, которые находятся в namespace i3bepb. Добавляю следующий composer.json:
    Код (Text):
    1. {
    2.     "name":"i3bepb",
    3.     "version":"1.0.0",
    4.     "require":{
    5.         "php":">=5.3.0"
    6.     },
    7.     "autoload":{
    8.         "psr-0":{"i3bepb":""}
    9.     },
    10.     "target-dir": "i3bepb" 
    11. }
    В проекте в котором планирую использовать пишу в composer.json:
    Код (Text):
    1. {
    2.     "config": {
    3.         "vendor-dir": "vendor"
    4.     },
    5.     "repositories": [
    6.         {
    7.             "type":"git",
    8.             "url":"http://github.com/i3bepb/lib"
    9.         }
    10.     ],
    11.     "require": {
    12.         "i3bepb":"dev-master"
    13.     },
    14. }
    В итоге он выкачивает все и записывает в vendor/i3bepb/i3bepb и подключает:
    Код (Text):
    1. // autoload_namespaces.php generated by Composer
    2.  
    3. $vendorDir = dirname(__DIR__);
    4. $baseDir = dirname(dirname(dirname($vendorDir)));
    5.  
    6. return array(
    7.     'i3bepb' => $vendorDir . '/i3bepb/',
    8. );
    Но получается 'масло, масленное' i3bepb/i3bepb, это делает по идей параметр target-dir, но без него выкачивается все в vendor/i3bepb и тогда он не может подлючить классы по psr-0. Пытался играться с параметром autoload, оставлял его пыстым, писал в него всякую ересь, но никак не получается получить в автозагрузчике следующее:

    Код (Text):
    1. // autoload_namespaces.php generated by Composer
    2.  
    3. $vendorDir = dirname(__DIR__);
    4. $baseDir = dirname(dirname(dirname($vendorDir)));
    5.  
    6. return array(
    7.     'i3bepb' => $vendorDir,
    8. );
    Может кто знает, подскажет?!