#php #laravel-5 #composer-php
#php #laravel-5 #композитор-php
Вопрос:
Пытаюсь создать пакет для системы продажи билетов, но у меня, очевидно, есть опечатка или неправильное представление о процессе.
{
"name": "pureintellect/tickets",
"description": "Laravel Ticketing system",
"license": "MIT",
"minimum-stability": "dev",
"require": {
"php": ">=5.5.9"
},
"autoload": {
"psr-4": {
"Pureintellect\Tickets\": "src/"
}
}
}
Это проект Laravel 5.3. Пакет, который я пишу, находится в
packages/pureintellect/tickets
поставщик услуг является
packages/pureintellect/tickets/src/TicketsServiceProvider.php
Ошибка
[SymfonyComponentDebugExceptionFatalThrowableError]
Class 'PureintellectTicketsTicketsServiceProvider' not found
Я пробовал разные пути, такие как
"Pureintellect\Tickets\": "src/"
"Pureintellect\Tickets\": "packages/pureintellect/tickets/"
"Pureintellect\Tickets\": "packages/pureintellect/tickets/src"
Что я делаю не так? Я уже пробовал composer dump-автозагрузку -o и composer update, как предлагалось в другом сообщении. Я уверен, что это как-то связано с путем к файлу или пространством имен… но, возможно, я просто слишком долго смотрел на это. Как я уверен, мы все знаем, это небольшие ошибки, которые отнимают 90% нашего времени. Спасибо за помощь
Ответ №1:
Если ваш пакет находится в packages/pureintellect/tickets/src
, то ваш автозагрузчик должен указывать на это…
"Pureintellect\Tickets\": "packages/pureintellect/tickets/src/"
Комментарии:
1. Ваше имя TicketsServiceProvider размещено как
PureintellectTickets
?2. ДА. Я только что дважды проверил
3. Я не знаю, какую всю отладку вы выполнили. Проверьте
vendor/composer/autoload_psr4.php
на'Pureintellect\Tickets` => array($baseDir . '/packages/pureintellect/tickets/src')
. Если это существует, попробуйте включить файл и вызвать класс вручную. Что-то должно вести вас в правильном направлении, поскольку эта строка должна заставить этот класс работать, если он правильно распределен по именам и находится в этом каталоге.
Ответ №2:
Извините всех! Я понял это. Оказывается, проблема была в разрешениях. Мне нужно было убедиться, что у группы есть разрешения на выполнение. Как только я исправил это, все начало работать.