Класс 'Pheanstalk_Pheanstalk' не найден в Laravel 4 с Beanstalk
Я пытаюсь запустить beanstalk и получить исключение при попытке запустить Queue::push():
Class 'Pheanstalk_Pheanstalk' not found
Я запустил composer, требующий pda / pheanstalk, и даже заново создал файл автозагрузки.
Это происходит в./vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php
Есть идеи?
4 ответа
В composer.json замените строку требований к pda/pheanstalk на
"pda/pheanstalk": "2.0.*"
Бежать
composer update
Предупреждение: также обновит Laravel.
Источник: http://laravel.io/forum/07-17-2014-class-pheanstalk-pheanstalk-not-found
Игнорирование. Нашел ответ на https://github.com/laravel/framework/issues/746. По-видимому, самая новая версия была реорганизована или что-то.
Возможно, вы используете pheanstalk 3, который у меня не работал с Laravel 4. Используйте эту команду для переключения на более старую версию:
composer require pda/pheanstalk "~2.1"
Если вы используете версию, такую как 2.1.1, и если вы используете пространство имен use Pheanstalk\Pheanstalk
, тогда это может быть проблемой (это было для меня). Версия 2.1.1 не совместима с использованием пространств имен, поэтому вы должны удалить use ...
строка, а затем, при запуске экземпляра типа класса Pheanstalk
Вы делаете это следующим образом:
$pheanstalkObject = new Pheanstalk_Pheanstalk('127.0.0.1');