2016-04-22 11 views
1

例外からのデータを記録するログクラスを作成する必要があります。簡単にするために、 'trace'配列内のデータを取得し、PHPの例外インスタンスの 'message'と 'code'プロパティを追加することで拡張できるかどうかを知りたかったのです。しかし、PHPで例外がスローされても、少なくとも3つのプロパティ( 'trace'、 'message'、 'code')を持つことが保証されているかどうかはわかりません。物事を記録する良い方法があるかどうかを提案する。すべてのPHP例外に「トレース」、「メッセージ」、「コード」の各プロパティがありますか?

+0

にそれについての詳細を読むことができます。ですから、一般的には\ Exceptionクラスをベースにするべきです。 http://php.net/manual/en/class.exception.php –

答えて

1

まず、すでに優れていることが証明されているコードを使用する方がよいでしょう。 PHPコミュニティは広くMonologライブラリを使用してチェックしてください。あなた自身のロガーをまだ書いておきたい場合は、こだわるべきですPSR-3 rules

あなたの質問にお答えください。スローされるPHPオブジェクトは、ExceptionクラスのインスタンスまたはExceptionのサブクラスでなければなりません。

しかし、あなたが例外

public function __construct($message = null, $code = 0, Exception $previous = null); 

のコンストラクタを見ればあなたが空に投げることができるexception.But常にコード、ファイル、トレースとコードが存在します。コードとメッセージは空白にすることができます。

あなたは、すべてのユーザー例外は、基本クラス `\ Exception`を拡張しているので、それは、少なくとも同じ機能を持ちますhttp://php.net/manual/en/language.exceptions.php

+0

私はすでに書かれたクラスに固執する方がよいということに同意します。しかし、彼らは私の要求に合っていません。彼らは大きすぎるか、私が探している重要な機能を欠いている。 –

+0

私はモノログがニーズの99%に合っていると思います。私はすべてのプロジェクトでそれを使用しており、高度にカスタマイズすることもできます。また、チャネル、ハンドラなどがたくさんあります。 – Robert

関連する問題