如何自定义Web调试工具栏
symfob娱乐下载ony的web开发者的调试工具栏是一个最好的朋友。它总是方便使用开发环境时在浏览器中访问。它给你所有你需要知道的关于当前页面和简化应用程序的调试。最好的消息是,web调试工欧宝平台是合法的吗具栏是完全可配置的。
web调试工具栏
没有任何配置,默认工具栏看起来像这样:
工具栏由面板。每个小组由一个标题和一个可选面板内容,小组是由一个PHP对象。默认情况下,有七个面板:
的名字 | 类名 | 表示 |
---|---|---|
ob娱乐下载symfony的版本 | sfWebDebugPanelob娱乐下载SymfonyVersion |
|
缓存信息 | sfWebDebugPanelCache |
|
配置 | sfWebDebugPanelConfig |
|
日志 | sfWebDebugPanelLogs |
|
数据库信息 | sfWebDebugPanelDatabase |
|
内存使用情况 | sfWebDebugPanelMemory |
|
计时器 | sfWebDebugPanelTimer |
定制工具栏
您可以自定义web调试工具栏的听debug.web.load_panels
事件在您的应用程序或项目配置文件。下面的代码显示了如何听这个事件在前端配置类:
< ? php类frontendConfiguration扩展sfApplicationConfiguration{公共函数配置(){/ /……这个美元- >调度程序- >连接(“debug.web.load_panels”,数组(这个美元,“configureWebDebugToolbar”));}}
有了这个配置,symfony会自动调用ob娱乐下载configureWebDebugToolbar ()
方法在初始化网络调试工具栏。这种方法可以删除、替换或添加面板。
至于每一个侦听器,symfony调用ob娱乐下载configureWebDebugToolbar ()
方法与一个事件作为参数。活动的主题是web调试工具栏对象我们想操作:
< ? php类frontendConfiguration扩展sfApplicationConfiguration{公共函数配置(){这个美元- >调度程序- >连接(“debug.web.load_panels”,数组(这个美元,“configureWebDebugToolbar”));}公共函数configureWebDebugToolbar(sfEvent美元的事件){webDebugToolbar美元=美元的事件- >getSubject();}}
删除一个面板
删除一个面板中,调用removePanel ()
方法和面板的名称如下:
< ? php类frontendConfiguration扩展sfApplicationConfiguration{/ /……公共函数configureWebDebugToolbar(sfEvent美元的事件){webDebugToolbar美元=美元的事件- >getSubject();webDebugToolbar美元- >removePanel(“记忆”);}}
更换或添加一个面板
替换一个面板中,调用setPanel ()
方法与现有的名字。
创建一个面板中,调用相同的setPanel ()
方法,但给它一个独特的新名字。
当然你可以扩展现有的面板类添加或删除一些信息,但为了这个例子中,我们创建一个全新的面板显示的JavaScript和样式表文件注册在我们的响应对象:
< ? php类frontendConfiguration扩展sfApplicationConfiguration{/ /……公共函数configureWebDebugToolbar(sfEvent美元的事件){webDebugToolbar美元=美元的事件- >getSubject();webDebugToolbar美元- >setPanel(“资产”,新sfWebDebugPanelAssets(webDebugToolbar美元));}}
我们需要创建sfWebDebugPanelAssets
类。所有面板类必须扩展sfWebDebugPanel
和实施至少以下三个抽象方法:
getTitle ()
:返回HTML web调试工具栏上显示。如果它返回零
,面板不会显示出来。getPanelContent ()
:返回的HTML表示面板。如果它返回零
,标题不会点击。getPanelTitle ()
:返回时显示的标题面板。
记住这个信息,这是最简单的面板,可能工作:
< ? php类sfWebDebugPanelAssets扩展sfWebDebugPanel{公共函数getTitle(){返回“资产”;}公共函数getPanelTitle(){返回“从sfWebResponse样式表和JavaScript文件”;}公共函数getPanelContent(){返回零;}}
它将显示一个新的web调试工具栏中的“资产”条目,但文本不是可点击的,因为面板内容是空的。
让它更有趣的小组通过添加一些内容。响应对象有两种方法,getJavascripts ()
和getStylesheets ()
,这些方法返回一个数组的JavaScript和样式表文件包括响应对象。
的getPanelContent ()
方法遍历这两个数组构造面板内容并返回它为HTML字符串:
< ? php类sfWebDebugPanelAssets扩展sfWebDebugPanel{/ /……公共函数getPanelContent(){美元的反应= sfContext::getInstance()- >getResponse();美元的html=”;如果(美元的样式表=美元的反应- >getStylesheets()){美元的html=。' < h2 > < / h2 > < ul >样式表”;foreach(美元的样式表作为美元的文件= >选择美元){美元的html=。sprintf(' <李> <强> % s < /强> % s < /李> ',stylesheet_path(美元的文件),数(选择美元)吗?“(”。var_export(选择美元,真正的)。“)”:”);;}美元的html=。“< / ul >”;}如果(美元的javascript=美元的反应- >getJavascripts()){美元的html=。' < h2 > Javascripts < / h2 > < ul > ';foreach(美元的javascript作为美元的文件= >选择美元){美元的html=。sprintf(' <李> <强> % s < /强> % s < /李> ',javascript_path(美元的文件),数(选择美元)吗?“(”。var_export(选择美元,真正的)。“)”:”);;}美元的html=。“< / ul >”;}返回美元的html;}}
这里是结果symfony页面上:ob娱乐下载
包你的板是一个插件
你甚至可以包你的新面板和分发它们ob娱乐下载symfony插件。
当用户安装你的插件,你可以问他改变配置类添加事件监听器正如我们之前所做的,但是你也可以连接到web.debug.load_panels
在你的插件config。
文件是这样的:
< ? php/ /……require_once“/道路/ / sfWebDebugPanelAssets”;这个美元- >调度程序- >连接(“debug.web.load_panels”,数组(“sfWebDebugPanelAssets”,“listenToAddPanelEvent”));
然后,添加listenToAddPanelEvent ()
你的方法sfWebDebugPanelAssets
类:
类sfWebDebugPanelAssets扩展sfWebDebugPanel{静态公共函数listenToAddPanelEvent(sfEvent美元的事件){美元的事件- >getSubject()- >setPanel(“资产”,新sfWebDebugPanelAssets(美元的事件- >getSubject()));}}
这样,你的小组将被自动添加到web开发人员调试工具栏没有任何变化。
这就是所有。多亏了新web.debug.load_panels
事件,您可以自由定制web调试工具栏按你所希望的方式。如果你想要更多的信息或了解更多技巧,你可以浏览的代码内置的面板。
这个工作许可适用创作共用署名下衍生著作3.0 Unported许可执照。