laravel — ошибка ReflectionException на PHP-ремесленнике

Всякий раз, когда я запускаю команды ремесленника, я получаю следующее сообщение об ошибке:

{"error":{"type":"ReflectionException","message":"Class OrdersModel does not exist","file":"\/home\/vagrant\/Omono\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php","line":552}}

Это происходит только на моем тестовом сервере, а не на производстве. Я пробовал бегать

composer dump-autoload

и т. д. И я проверил в composer.json и там есть папка моделей. Я также проверил в vendor / composer / autoload_classmap.php, и это имеет мое отображение:

'OrdersModel' => $baseDir . '/app/models/Orders.php',

Я не уверен, что еще можно попытаться исправить эту проблему.

РЕДАКТИРОВАТЬ: Обратите внимание, что у меня нет никаких проблем с OrdersModel или каких-либо других классов в реальном приложении Larvel.

EDIT2 (важный??)Таким образом, благодаря кропотливой задаче добавления операторов трассировки, поскольку многословный режим, похоже, не работает, я обнаружил, что проблема заключается в создании поставщиков услуг и сводится к созданию «синглтона» в приложении. Я не писал этот код, но похоже, что есть интерфейс (OrderRepositoryInterface) и реализация для сопоставления с ним (DbOrderRepository). Файл начинается следующим образом

<?php namespace Omono\Repositories;

use OrdersModel as Order;

так что по какой-то причине он ищет OrderModels и не может его найти. Я почти уверен, что с этим модулем в реальном веб-приложении проблем не было. По какой-то причине он не может найти OrdersModel в этой папке, только когда работает ремесленник.

EDIT3:

PHP-V дает:

PHP Warning:  Module 'mongo' already loaded in Unknown on line 0
PHP 5.5.12-2+deb.sury.org~trusty+1 (cli) (built: May 12 2014 13:48:43)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

Я должен также отметить, что все работает нормально, когда я захожу на сайт. OrdersModel делает то, что должен делать без проблем, и я не получаю ошибок. Это происходит только при выполнении команды ремесленника. Возможно, это не связано с тем, что каждый раз, когда я обновляю свой тестовый сервер vagrant (тот, у которого проблема), мне нужно запускать dumpautoload composer, чтобы пара классов работала.

0

Решение

Итак, после долгих тренировок мне удалось решить эту проблему. Это очень специфическая проблема, но я опубликую свой ответ на тот случай, если кто-нибудь найдет этот вопрос.

Итак, после редактирования 2, я решил закомментировать строку в сервис-провайдере, которая ссылается на этот класс … скрестив пальцы … это сработало. Вид. Это на самом деле выплюнуло ошибку из-за строки use Log; в моем коде. Интересно. Давайте удалим это. Оно работает. Поэтому я раскомментировал свой класс, и в классе я заметил, что я также использовал журнал. В этом случае его нет в пространстве имен по умолчанию, так что это было правильно, но я на самом деле нигде не вызывал Log, так что, черт возьми, он мог бы его удалить. Нет кости. Затем переключение между этим классом и почти идентичным классом. Я заметил

use MyApp\Repositories\OrderRepositoryInterface;

Подождите минуту. Это не нужно; как это в том же пространстве имен. Я удалил эту строку. Низко и вот все исправлено.

Резюме; хорошо … я не знаю. Я вообще не знаю, как это означало сообщение об ошибке, но в основном просто проверяйте подобные вещи у своих поставщиков услуг. Я также читал о многих людях, имеющих проблемы, потому что они использовали вместо.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector