これのトリッキーな部分は、ブラウザがあらゆる形式のエラーメッセージを表示することを頑固に拒否したことです。その場合は、コマンドラインに移動して試して、Webサーバーを変数として削除するのが好きです。
チャットから、コマンドラインに期待どおりのエラーが表示されたことがわかりましたが、正常に表示されませんでした。エラーが出力され、スクリプトが停止しました。これはハードクラッシュであり、Webサーバーに起因するものではありません。
\Throwable
の導入に伴い 、PHPが一生懸命に死ぬシナリオは、ますます少なくなり、その間はますます進んでいます。そこで、PHPの息を呑むような努力をするために、register_shutdown_function
を実装しました。 error_get_last
をプルしました 爆破する直前に何が言われたかを理解するために。
これにより、ブラウザにエラーメッセージが表示されました(今回は別のブラウザを使用)。しかし、これは再現できませんでした。この時点での洞察はキャッシュでした:composer dump-autoload
問題を修正しました!
何が起こったのかと思います:
Eloquent
例外をスローしました- PHPは、Laravelの例外処理クラスを介してそれをバブリングしていました
- ある時点で、PHPはオートローダーにないクラスを読み込もうとしました
- PHPが激しくクラッシュしました(これはPHP 7.0が失敗するケースの1つです)
composer dump-autoload
を実行する 、すべての「欠落している」クラスがオートローダーの範囲内に持ち込まれ、再試行すると、正しいコードシーケンスが発生しました。