artisan コマンドを実行するたびに、次のエラー メッセージが表示されます。
{"error":{"type":"ReflectionException","message":"Class OrdersModel does not exist","file":"\/home\/vagrant\/Omono\/vendor\/laravel\/framework\/src\/Illuminate\/Container\/Container.php","line":552}}
これは私のvagrantテストサーバーでのみ発生し、本番環境では発生しません. 走ってみました
composer dump-autoload
など。composer.json をチェックインしたところ、models フォルダーがそこに含まれています。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 を探す場所であり、見つけることができません。実際の Web アプリでは、このモジュールに問題はなかったと確信しています。したがって、何らかの理由で、このフォルダーに 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
また、Web サイトにアクセスするとすべてが正常に動作することも指摘しておく必要があります。OrdersModel は何の問題もなくすべきことを行い、エラーは発生しません。これは artisan コマンドの実行時にのみ発生します。おそらく無関係ですが、vagrant テストサーバー (問題のあるサーバー) を更新するたびに、いくつかのクラスを機能させるために composer dumpautoload を実行する必要があります。