2015-02-20 2 views
1

Packagist не позволяет именам пакетов иметь заглавные буквы. Чтобы обойти это, рекомендуется использовать дефисы -. Таким образом, мое имя пакета перешло от TableCreator к создателю таблицы. К сожалению, это, кажется, предотвратили мою библиотеку из самозарядных со следующим сообщением об ошибке:Автозагрузка пакетов Php с дефисами

Class 'Company\TableCreator\DatabaseField' not found 

Этого сообщение об ошибке исчезает, как только я вручную включить конкретный файл, а не полагаться на файл vendor/autoload.php.

Мой файл пакеты composer.json следующим

{ 
    "name": "company/table-creator", 
    "type": "library", 
    "description": "Package creating or editing MySQL tables.", 
    "keywords": ["mysql", "mysqli","models"], 
    "license": "MIT", 
    "authors": [ 
     { 
      "name": "xxx xxx", 
      "email": "[email protected]", 
      "role": "Developer" 
     } 
    ], 
    "require": { 
     "php": ">=5.3.0" 
    }, 
    "autoload": { 
     "psr-4": { 
      "company\\table-creator\\": "" 
     } 
    } 
} 

Пространство имен объявляется в файле по-прежнему namespace Company\TableCreator;

Что мне нужно настроить в композиторе конфигурации для классов, чтобы autload теперь, имя пакета имеет дефис?

ответ

1

Вы должны вернуть изменения в PSR-4 префикса пространства имен:

{ 
    "autoload": { 
     "psr-4": { 
      "Company\\TableCreator\\": "" 
     } 
    } 
} 
Смежные вопросы