标签:username oca 记录 patch pre get 调度 function dbn
可能用到的类
phalcon\mvc\use\plugin
Phalcon\Mvc\Dispatcher as MvcDispatcher
Phalcon\Events\Manager as EventsManager
代码部分
public/index.php:
$di[‘db‘] = function() use($di){
//log
//事件管理
$eventManager = new \Phalcon\Events\Manager();
//继承了plugins的数据库sql操作类
$eventQSql = new \Mydatabase();
//附上一个侦听者
$eventManager->attach("db", $eventQSql);
$db=new DbAdapter(array(
"host" => "localhost",
"username" => "root",
"password" => "",
"dbname" => "demo",
"charset" => "utf8"
));
//绑定事件
$db->setEventsManager($eventManager);
return $db;
};
app/plugins/Mydatabase.php
use Phalcon\Db\Profiler,
Phalcon\Logger,
Phalcon\Logger\Adapter\File as LoggerFile;
class Mydatabase extends \Phalcon\Mvc\User\Plugin {
protected $_logger;
protected $_profiler;
public function __construct()
{
$this->_profiler = $this->profiler;// new \Phalcon\Db\Profiler();
$this->_logger = new LoggerFile("../log/sql.log");
}
public function beforeQuery()
{
$this->_logger->log($this->db->getSQLStatement (), Logger::INFO);
$this->_profiler->startProfile($this->db->getSQLStatement());
}
public function afterQuery()
{
$this->_logger->log($this->db->getSQLVariables (), Logger::INFO);
$this->_profiler->stopProfile();
}
}
每次执行sql语句的时候,发送的sql都会被记录到log文件里面。
phalcon: plugin 结合Manager事件管理、dispatcher调度控制器 监听sql日志记录或其他拦截出来
标签:username oca 记录 patch pre get 调度 function dbn
原文地址:http://www.cnblogs.com/achengmu/p/6003393.html