今日は面白い問題を抱えていました。 Zend Frameworksのキャッシュ機能を利用するアプリケーションがあります。このアプリケーションへの要求は、一般的にcall_user_func_arrayとcall_user_func
$result = call_user_func_array(array("myclass", "factory"), array($id));
アイデアは我々が後でアクセスできるファクトリメソッドからオブジェクトを返すことです次の行を使用してファクトリメソッドを呼び出します。キャッシング機能を実装したとき、この呼び出しはまあまあです。エラーはなく、白い画面になります。エラーログには何もありません。 okの前に行を記録する際にエラーが発生する可能性がありますが、ファクトリメソッド内でerror_logを試行しても何も起こりません。
は興味深いことに、に行を変更:
$result = call_user_func(array("myclass", "factory"), $id);
することは問題が修正されます。
バグレポートを調べるのに数時間を費やしてきましたが、この動作を説明するのにあまり時間がかかりませんでした。誰か思う?
私のコードをすべて名前空間に変換している間に、この問題が最近気付きました。クラスは正常に存在し、インスタンスをインスタンス化できます。 しかし、私はインスタンスを取って_arrayを使ってメソッドを呼び出そうとすると何も起こりません。コードは続行されますが、メソッドは決して呼び出されないようです。 –