または、そのためのフレームワーク。
例として Zend Framework 2 を使用すると、次のテーブル クラスがあります。
<?php
namespace Contact\Model;
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Log\Logger;
class UserContactsTable extends AbstractTableGateway
{
protected $tableGateway;
/**
*
* @var \Zend\Log\Logger Instance
*/
protected $logger;
public function __construct(TableGateway $tableGateway, Logger $logger )
{
$this->tableGateway = $tableGateway;
$this->logger = $logger;
}
/**
* Save a contact
*
* @param \Sms\Model\UserContact $userContact
*/
public function saveUserContact(UserContact $userContact)
{
$data = array(
'user_id' => $userContact->user_id,
'contact_id' => $userContact->contact_id
);
try {
$this->tableGateway->insert($data);
} catch (\Exception $e) {
//log
$this->logger->crit($omeErrMsg);
}
}
}
?>
ここにログインする必要がありますか?ロガーをテーブル クラスに関連付ける必要がありますか? 挿入が失敗した場合、saveUserContact 関数が例外をスローし、コントローラーでキャッチしてそこにログを記録する必要がありますか?
ベストプラクティスは何ですか?
私の最初のアイデアは、ロガーによってテーブル クラスで使用される挿入や更新の失敗など、いくつかの一定のエラー メッセージを含むクラスを作成することでしたが、ここで正しいプロセスが何であるかはわかりません。
これは実際には PHP や Zend Framework 2 に限定されたものではありませんが、たまたま私が使用している言語にも当てはまります。