php artisan上的ReflectionException错误

时间:2015-01-11 00:34:14

标签: php laravel laravel-4 artisan

每当我运行artisan命令时,我都会收到以下错误消息:

{"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;

所以无论出于何种原因,这都是它寻找OrderModel而无法找到它的地方。我很确定在实际的网络应用程序中这个模块没有问题。因此,由于某些原因,它无法在此文件夹中找到OrdersModel,仅在运行artisan时

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做了它应该做的事情没有问题,我没有得到任何错误。这只在运行artisan命令时发生。也许不相关虽然每次我更新我的流浪测试服务器(有问题的那个)我需要运行composer dumpautoload为几个类工作。

1 个答案:

答案 0 :(得分:0)

好的,经过大量的游戏,我设法解决了这个问题。这是一个非常具体的问题,但我会发布我的答案,万一有人发现这个问题。

所以继续编辑2之后,我决定在serviceprovider中注释掉引用这个类的行...手指交叉......它有效。的种类。它实际上由于行使用Log而吐出错误;在我的代码中。有趣。我们删除它。有用。所以我取消了我的课程,在课堂上我注意到我也使用了Log。在这种情况下,它不在默认命名空间中,所以这是正确的,但我实际上并没有在任何地方调用Log,所以,不管怎样,也可以删除它。没有骰子。然后在这个类和几乎相同的类之间轻弹。我注意到了

use MyApp\Repositories\OrderRepositoryInterface;

等一下。这不是必需的;因为它在同一名称空间中。我删除了那一行。低,看到一切都是固定的。

概要;嗯......我不知道。我不知道错误消息是如何表示的,但基本上只是在服务提供商中检查这些内容。我也读到很多人遇到问题,因为他们用的是代替。