■Zend_Debug
require_once 'Zend/Debug.php'; $str = 'this is a sample!' Zend_Debug::dump($str);
■Zend_Log
長期にわたって監視したい場合に有効である。
require_once 'Zend/Log.php'; require_once 'Zend/Log/Writer/Stream.php'; $logger = new Zend_Log(); $writer = new Zend_Log_Writer_Stream('/path/to/log.txt'); $logger->addWriter($writer);
DBにログを書き込みたい場合は以下のようにする。
require_once 'Zend/Log.php'; require_once 'Zend/Log/Writer/Db.php'; require_once 'Zend/Db.php'; $dbh = Zend_Db::factory( 'Pdo_Mysql', array( 'host' => 'localhost', 'username' => 'user', 'password' => 'pass', 'dbname' => 'dbname' ) ); $dbh->query("SET NAMES 'utf8'"); $logger = new Zend_Log(); $writer = new Zend_Log_Writer_DB( $dbh, 'table_log', array( 'level' => 'priority', 'priority' => 'priorityName', 'msg' => 'message', 'register_date' => 'timestamp' ) ); $logger->addWriter($writer);
上述の場合、既にDBにtable_logテーブルが存在し、カラム(level,priority,msg,register_date)が作られている前提である。
実用例
以下のようにすると警告以上のメッセージしか記録されない。
require_once 'Zend/Log.php'; require_once 'Zend/Log/Writer/Stream.php'; $logger = new Zend_Log(); $writer = new Zend_Log_Writer_Stream('/path/to/log.txt'); $logger->addWriter($writer); $writer->addFilter(Zend_Log::ERR); $logger->log('システム使用不可' , Zend_Log::EMERG); $logger->log('至急対応が必要' , Zend_Log::ALER); $logger->log('危機的な状況' , Zend_Log::CRIT); $logger->log('エラー' , Zend_Log::ERR); $logger->log('警告' , Zend_Log::WARN); $logger->log('注意' , Zend_Log::NOTICE); $logger->log('情報' , Zend_Log::INFO); $logger->log('デバッグメッセージ' , Zend_Log::DEBUG);
■Zend_Exception
ZendFrameworkでは全ての例外がZend_Exceptionを継承している。
<?php require_once 'Zend/Db.php'; try{ $dbh = Zend_Db::factory( 'Pdo_Mysql', array( 'host' => 'localhost', 'username' => 'name', 'password' => 'pass', 'dbname' => 'dbname' ) ); } catch(Zend_Db_Adapter_Exeption $e){ //failed to connect because of invalid user or db switch in the off position } catch(Zend_Exception $e){ //failed to load the class file }
各メソッドについて
- Zend_Debug::dump(mixed $variable[, string $caption[, bool $isDisplayed]])
- 第一引数の内容を第二引数のキャプションをつけて表示する。第三引数がfalseの場合は値を文字列として返します。
- Zend_Log::__construct(void)
- ログオブジェクトを生成する。
- Zend_Log_Writer_Stream::__construct(string $path_to_txt);
- 第一引数にファイルのパスを指定し書込オブジェクトを生成する。
- Zend_Log_Writer_DB::__construct(resource $dbh, string $table_name, array $dbcolumn_for_log);
- 第一引数にDBハンドラを、第二引数にテーブル名を、第三引数にテーブルのカラムをキーにした連想配列を指定し書込オブジェクトを生成する。
- Zend_Log::addWriter($writer);
- ログオブジェクトに引数の書込オブジェクトを付加する。
- Zend_Log_Writer_Stream::addFilter(int $error_level)
- 第一引数で指定したレベルでフィルタリングする。