Phalcon调试大杀器之phalcon-debugbar安装

Phalcon 是一款非常火的高性能C扩展php开发框架。特点是高性能低耦合,但遗憾的是长期缺少一款得力的调试辅助工具。

感谢作者“老朱”,现在phalcon也有了专属的debug工具: Phalcon Debugbar。从今天起phalcon开发者们再也不用羡慕Zf,Laravel,Ci等集成了php debug bar的框架,因为phalcon已经正式成为了其中一员。目前版本主要以Laravel debugbar的具有功能为蓝本开发,并针对phalcon的功能特征进行了小幅更改,未来版本还将针对phalcon的功能进行进一步扩展丰富。项目地址:http://git.oschina.net/zhuyajie/phalcon-debugbar

readme.md中只是粗略的介绍了phalcon-debugbar的安装方式,新学者可能很难理解其中的安装步骤,Marser下面将给大家介绍下详尽的安装步骤。

1、安装composer

composer是PHP用来管理依赖(dependency)关系的工具。可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮助安装这些依赖的库文件。安装命令如下:

cd /usr/local/src
curl -sS https://getcomposer.org/installer | php
#移动目录,进行全局安装
mv composer.phar /usr/local/bin/composer
2、composer安装phalcon-debugbar

composer安装成功后,就可以通过composer安装phalcon-debugbar了。这里不推荐通过源码安装的方式,需要解决一些命名空间的依赖问题,否则无法正常使用。使用如下命令通过composer方式安装phalcon-debugbar,

#切到项目的根目录
cd /project-path/
composer require --dev snowair/phalcon-debugbar

如下图所示,即表示phalcon-debugbar扩展包已经下载成功

再执行如下命令,创建“Runtime/debugbar”目录。

cd vendor
mkdir -p Runtime/debugbar
chmod -R 0777 Runtime

此举是为了支持ajax调试和重定向调试功能,debugbar是默认开启了调试数据持久化功能,它会将收集到的调试信息以json文件保存在“Runtime/debugbar”目录下。如果该目录不存在,会试图创建,这需要你的项目目录是可写,否则将会抛出warning错误,建议手动创建,并设置为可写权限(此目录路径可通过debugbar.php配置)。

基本环境准备完毕后,将“/project-path/vendor/snowair/phalcon-debugbar/src/config/debugbar.php”文件复制到当前项目中的配置文件存放目录。debugbar.php是phalcon-debugbar的配置文件,复制到项目的配置文件存放目录的主要目的,一方面是可以为每个项目中的应用模块进行差异化的配置;另一方面也是方便phalcon-debugbar的更新,不会覆盖项目中使用的phalcon-debugbar配置项。

3、修改入口文件,注册服务

修改index.php文件,在文件的最开始处,添加如下代码:

require_once '../vendor/autoload.php'; //根据文件的路径,适当的调整引入的相对路径

然后添加如下代码:

#若此行代码已存在,可不必再添加
$application = new Phalcon\Mvc\Application($di); // 将$di作为构造参数传入  Micro应用也一样: new Phalcon\Mvc\Micro($di);

$di['app'] = $application; //将应用实例保存到$di的app服务中
#根据debugbar.php存放的路径,适当的调整引入的相对路径
$provider = new Snowair\Debugbar\ServiceProvider('../config/debugbar.php');
$provider -> register();//注册
$provider -> boot(); //启动

#若此行代码已存在,可不必再添加
echo $application->handle()->getContent();// 在启动debugbar之后,立即handle应用
4、测试phalcon-debugbar是否安装成功

测试代码如下:

    class TestController extends \Phalcon\Mvc\Controller {

        public function indexAction(){
                echo 'phalcon-debug test';
        }
    }

在浏览器中执行此代码,页面输出如下图,并没有输出debug工具条,

页面中的红框中出现了“302”的HTTP状态码,说明这两个文件没有加载成功。 搜索这两个文件名,发现在“/vendor/snowair/phalcon-debugbar/src/ServiceProvider.php”文件中动态添加了如下代码:

路径中并没有“/cart/”路径。 查看di中的注册url服务,发现代码中赋值了初始路径,

将红框中的代码注释掉,然后刷新浏览器,即可看到debug工具条,安装成功!

5、调试效果图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏恰同学骚年

操作系统核心原理-6.外存管理(下)文件系统

  磁盘具有大容量、低成本以及持久化的特点,即使发生断电,磁盘上的数据也不会丢失。但是,对于一般用户而言,使用磁盘是非常苦难的,因为他们不知道如何驱动一个磁盘,...

793
来自专栏python3

python爬虫--调用百度翻译进行文本翻译

点网络,会发现很多GET,POST请求,右边消息头那里会有很多信息:请求地址、请求方法、远程地址、状态码、server、等等之类的信息

1171
来自专栏架构师之路

“id串行化”到底是怎么实现的?

一、需求缘起 在上一篇文章《消息“时序”与“一致性”为何这么难?》中,介绍了一种为了保证“所有群友展示的群消息时序都是一致的”所使用的“id串行化”的方法:让同...

3718
来自专栏黑白安全

PHP安全编码规范之安全配置篇

因为配置不当引发的安全问题是屡见不鲜的,通过一系列的安全配置,可以很好的解决一些安全隐患,从而为系统增加安全系数。但是在开发过程中,因为需求的改变和编程的习惯可...

1412
来自专栏静下来

解决ssh出现Host key verification failed错误的方法

image.png ssh登陆Linux服务器的时候,如果出现了Host key verification failed的错误,需要清空下本地ip密码记录。 出...

3177
来自专栏GopherCoder

『Ansible 上手指南』

1593
来自专栏云计算教程系列

如何在CentOS 7上添加Swap

使服务器响应更快,并防止应用程序中出现内存不足错误的最简单方法之一是添加一些swap空间。Swap是存储驱动器上的一个区域,操作系统可以在该区域临时存储无法再保...

1122
来自专栏Albert陈凯

Hadoop离线数据分析平台实战——380MapReduce程序优化Hadoop离线数据分析平台实战——380MapReduce程序优化

Hadoop离线数据分析平台实战——380MapReduce程序优化 项目进度 模块名称 完成情况 用户基本信息分析(MR)� 完成 浏览器信...

3208
来自专栏测试开发架构之路

Keepalived+Nginx高可用架构配置

1452
来自专栏Golang语言社区

通俗的解释一下什么是 RPC 框架?

首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不...

1385

扫码关注云+社区