phalcon: plugin 结合Manager事件管理、dispatcher调度控制器 监听sql日志记录或其他拦截出来
可能用到的类
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日志记录或其他拦截出来的更多相关文章
- phalcon: Profiling分析 profilter / Plugin结合,dispatcher调度控制器 监听sql执行日志
个人觉得profilter 跟 logger 功能差不多,logger的功能在于写入,profilter功能在于sql后及时显示分析.都是对sql执行的的分析:一个是写入log文件,一个是直接在页面展 ...
- ThinkPHP 数据库操作(六) : 查询事件、事务操作、监听SQL
查询事件 查询事件(V5.0.4+) 从 5.0.4+ 版本开始,增加了数据库的CURD操作事件支持,包括: 查询事件仅支持 find . select . insert . update 和 del ...
- phalcon: dispatcher调度控制器
phalcon: dispatcher调度控制器 我所理解的dispatcher调度控制器,实际上是对 router或者特定的url参数给与重组. 引用特定的类: //add use Phalcon\ ...
- 为不具有change事件的html标签设置监听事件
change事件会在文本内容或选项被更改时触发. 该事件仅适用于<input type="text">和<textarea>以及<select> ...
- Sprinboot优雅配置监听,并记录所有启动事件
在阅读Springboot启动源码的时候,发现Springboot自动启动listeners是通过uopeizhi文件配置的,本文就是采用Springboot方式自动装入listeners. 项目依赖 ...
- 监听浏览器tab选项卡选中事件,点击浏览器tab标签页回调事件,浏览器tab切换监听事件
js事件注册代码: <script> document.addEventListener('visibilitychange',function(){ //浏览器tab切换监听事件 if( ...
- 使用net Manager工具远程连接Oracle配置监听
一.在服务端配置Oracle端口 win + R 输入netca 弹出如下窗口后 选择监听程序配置,点击下一步: 二.配置端口号后使用Telnet工具调试端口是否连通 在命令行输入telnet 服务器 ...
- phalcon: eventManager事件管理(结合dispatcher调度控制器)制作简单的acl
制作简单的acl, dispatcher(专门用来加载或调度或跳转到相应的url地址即XXXcontroller的调度器或控制器,能够在controller执行前对controller进行停止跳转等) ...
- H5的Video事件,控制方法,及监听
1.标签基本属性 src :视频的属性 poster:视频封面,没有播放时显示的图片preload:预加载autoplay:自动播放loop:循环播放controls:浏览器自带的控制条width:视 ...
随机推荐
- Java中数组的特性
转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...
- CentOS 安装SolrCloud
1.什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不 ...
- 华东交通大学2016年ACM“双基”程序设计竞赛 1007
Problem Description ACM小学妹在今天的暑假训练结束后,想看球赛放松一下.当他打开电脑时查询到联盟今天直播N场球赛,每场球赛的起止时间(S1,E1),(S2,E2),...,(SN ...
- Educational Codeforces Round 16 C
Description Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column ...
- IOSView显示特性设置
一.主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等 ...
- 六、IO流——文件
IO流1.字节流(InputStream.OutputStream)2.字符流 (Reader.Writer)3.缓冲流(BufferedInputStream.BufferedOutputStrea ...
- C#获取百度新歌TOP50
先上软件效果图 代码如下1.根据Url地址得到网页的html源码 public static string GetWebContent(string Url) { string strResult = ...
- libreoffice实现WORD文档转PDF文档
一.安装LibreOffice 官网:http://www.libreoffice.org/ 二.CentOS安装yum yum install libreoffice 三.执行转换命令 libreo ...
- Examples For PLSQL Cursors - Explicit, Implicit And Ref Cursors
A cursor acts logically as a pointer into a result set. You can move the cursor through the result s ...
- JAVA排序--[插入排序]
package com.array; public class Sort_Insert { /* * 项目名称:插入排序 ; * 项目要求:用JAVA对数组进行排序,并运用插入排序算法; * 作者:S ...