PHP-Parser 学习笔记

缘起

最近工作上接到一个任务,要把项目代码的控制器中所有没有判断过权限的public方法找出来。我们的控制器里有一个统一的”checkAllow”方法来进行权限判断。所以任务可以归结为找到所有代码里没有调用过这个方法的public方法及其所在的类。

有了这个思路,我首先想到的就是用php中自带的”token_get_all”方法获取到代码的分词,然后进行分析。然而这个函数太底层了,什

[……]阅读全文

理解 laravel 的Facade

接触Laravel一段时间,对它的一些操作的原理比较感兴趣,比如”Cache::get(‘a’,’b’)”。

这短短的一条语句背后,Laravel进行了哪些工作,让它变成现实呢?今天,我特地研究了一下它的工作原理。理解了这些原理之后,我们也可以实现自己的”Facade”。

要想操作Cache的get方法,必须先有Cache这个类。那么这个类从哪来呢?打开项目app/config/app[……]阅读全文

laravel route 重定向的一个小坑

今天做项目发现一个奇怪的现象,我的路由配置里有如下配置:

目的是无论用户输入”admin”,还是”admin/login”都能跳转到登录界面。然而现实情况是输入”admin”之后,浏览器会无限重定向,firebug记录如下:

经过一番搜索后试验,终于得出结论,[……]阅读全文

php socket 编程文章推荐

一直想做一个在线聊天的程序,不免搜集一些资料。对于实时通信,目前流传广泛并且已经成熟的技术是“ajax长轮询”(具体介绍请百度,不是本文主要内容),但它毕竟还是有缺陷的。html5为我们带来了一种新的通信方式—-web socket。作为php程序员,自然要在服务端写好socket服务器程序喽,特此推荐几篇与php socket编程有关的文章及相应介绍。

1.php socket讲解与实[……]阅读全文

神器vim之snipmate插件-快速插入

早以前就听说过vim的大名,说它是编程人员的神器,但是试用过几次之后,实在没发现它有什么神奇的地方,就删了。

开始学php之后,老师要求大家使用vim为将来学习linux下编辑文件做准备。

上课的时候,老师输入‘html’,然后按了个tab键,结果就能出来一堆东西,他把这称之为快插。我感到很神奇,恰好旁边的一个同学有这个插件,给了我一份。当时也不知道这玩意这叫什么,就知道把它解压了就能用了,使[……]阅读全文

文件上传之坑爹的mime类型

从我第一眼看到mime类型开始,就觉得这货是一个完全没用的东西,今天的学习经历更让我加深了这一观点。

《php和mysql web开发》书上有一个文件上传的实例,作者特别提到要对用户上传的文件的大小、类型等等做检查,其中在检查类型时用到了mime。我一直在想,mime和后缀名相比,除了需要多输好多字母外还有什么作用。莫非mime能无视后缀名,直接获知文件类型?如果是这样的话,那它就有用了,可以防[……]阅读全文

php字符串的组成方式

在读《php指南白菜版》的时候,文中提到,字符串本身也是一个隐式数组。并给出了以下代码:

$data[‘first’]=’Hello’;
$data[‘first’][‘second’]=’world’;
echo  $data  [‘first’];
运行此段代码,并解释下原因。

看到结果的时候我很吃惊,有点不理解。之后百度了一下,找到一篇解释php字符串组成方式的文章,顿时大悟。

  • $st

[……]阅读全文

搭建WAMP平台

1.下载最新的apache2.2.22,安装;

2.下载最新php5.4.3文件,解压到c:/php5;

3.重命名并修改php.ini,extension_dir=”c:/php5/ext/”

开启

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysql[……]阅读全文

重新开始php学习

虽然和一些天才相比,我到了这个年龄还毫无建树,显得我很平庸,但是我不能就此放纵自己,不再有做出一番业绩的热情。我还年轻,应该保持高涨的学习热情。10年暑假学了php之后一直放着,到现在已经忘的差不多了。不能再这样下去了,我必须重新开始学习!!!![……]阅读全文