ZendFramework Part2 at PHP
[2ch|▼Menu]
92:86
08/04/26 05:24:31
>>91
すみません。自己解決しました。

初めの説明がちょっとおかしかったりしてるので補足します。

Zend_DateObjectの1016行目で、(ここ最初にちゃんといえてなかったです)

if (!@timezone_open($zone)) {

となっていますが、このZend_Dateのコンストラクタの第一引数がnullだと、
上記の$zoneがintのタイムスタンプで入ってきます。
そうすると、timezone_open()はタイムゾーン文字列が渡されることを期待しているので、
E_WARNINGを発しますが、@で抑制されます。(通常は。)

しかし、独自のエラーハンドラをすべてのエラーレベルに対して設定していて、
そのハンドラの中で@付きのエラー(ハンドラ内でのerror_reporting()の戻り値が0の場合)に対して適切な処理を行っていないと、
本来の@によるエラー抑制は無視され、処理が停止します。

このためnew Zend_Date(パラメータなし)がこけていました。

これは、Zend_Loaderの160行目でもおきます。。
(独自エラーハンドラのせいで@fopen()の@が効かないので)

E_WARNINGに対しても独自のエラーハンドラを適用している場合は、ZFでは色々と気をつけないといけないみたいです。

以上、お騒がせしました。



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5016日前に更新/63 KB
担当:undef