2016-07-26 3 views
4

PHPアプリケーションを動作させるために必要なPHP拡張モジュールが数多くあります。不足している拡張機能に関連するPHPエラー/例外処理

難しい部分は、フレームワークを使用しているときに私たちのプロジェクトが特別に必要とするすべての拡張子を確認できないことです。これらの拡張機能のいくつかは一般的であると仮定しており、デフォルトで有効にする必要があります。

いつかのユーザーは、あまり設定されていないPHPを使用して新しく/専用のサーバーにアプリケーションをインストールします。

エクステンションに関連するエラーがキャッチされるクラスがあります。したがって、基本的には、拡張機能に関連してエラーが発生したときに、ユーザーを特別なページに誘導し、この拡張機能を有効にするように指示することができます。

このようなエラー/例外に対して、より良い例外処理を行うにはどうすればよいですか?

+0

アプリケーションが開発中ではなく、何かを開発しているため、これを回避するソリューションはありません。 Laravelは2つの機能を備えた非常にまともな例外ハンドラを持っていますが、これで十分ではない場合は何も考えることはできません:https://laravel.com/docs/5.1/errors#the-exception-handler – ClearBoth

+0

インストール/必要な拡張機能の存在を明示的にチェックし、ユーザーに問題がないかどうかを調べるブートストラップスクリプト? – deceze

+0

私たちのアプリケーションはオープンソースであり、人々はそれを自分のサーバーにインストールしています。最近、いくつかの基本的なPHP拡張も有効にならなかったいくつかのエラー報告が出ました。これは私たちが決して説明しなかったものです。これらのエラーを事前に知る必要があります。 Laravelに必要なすべてのPHP拡張機能を有効にしないPHP拡張に関連する例外をキャッチするようなクラスを誰かが既に構築しているのかどうか疑問に思う人もいました。 –

答えて

1

これはLaravelの質問よりもPHPに関する質問のほうが多いです。 Laravel requires mcrypt、mbstring、openssl ..その他のほとんどの/まともなPHP Webアプリケーション/フレームワークと同じように、デフォルトで。場合によっては、プロジェクトに追加のモジュールが必要な場合もあります。

しかし、PHPでは、extension_loaded関数を使用して、拡張機能がロードされているかどうかを調べることができます。例えば

if(!extension_loaded('mcrypt')){ 
    //maybe try to load it or display a nice 404 error page 
} 

あなたは、たとえば、あなたのindex.phpに上記のコードブロックを置くと、問題がうまくありますユーザーに伝えるために、独自のカスタム500分の404ページを表示することができます。

関連する問題