基于 libgit2 C 语言库的 php-git 扩展 fix bug 辛酸史

前言这是一篇极其没有节(nei)操(rong)的文章。除非你真的无聊,请不要阅读,否则后果自负正文最近,在忙活微博话题组的日构建工具。工具主要的功能并不算复杂。。。写着写着,外面雨过天晴,居然还放起爆竹了,什么鬼。构建工具的主要功能正如介绍中所述的那样,提取产品、测试等基本信息、提取版本库(git)信息、检查(编译)源文件、自动部署项目与发送邮件等。在提取git库信息时,相对于之前利用shell_exec PHP原生函数提取svn信息的方式,打算利用扩展来提取信息。一来更规范、更有效率(微乎其微),二来专业。缺点是相对而言部署环境麻烦,因为需要安装git扩展到当前php运行环境中来。但是,万万没想到官方推荐的php-git扩展库开发版本已有3年没有维护了。索性用吧,又能怎样。。。安装还算顺利,由于公司开发机没有cmake,yum源也不可用,懒得配置,直接download一套源码。cd /root/down/php-gi... Read More

关于“如何开发 PHP 扩展”的学习小结

近期,工作上的业务并不是很忙。做了大半年的业务逻辑,尽管在PHP编码习惯和技巧上有所进步,初步熟悉了在高并发下Redis和Memcache缓存的使用和注意事项。但,应该借此闲暇时间探索下PHP底层的一些原理。这样,才是会有质的提升,写出更好的代码。正如那句话“PHP取得成功的一个主要原因之一是她拥有大量的可用扩展”,那就从PHP扩展入手了解下。在此之前,大家肯定都了解“PHP是C写的”。于是打开了PHP的源码,列出跟目录列表如下图(有亮点~ 怎么单位的女同事都没了。。)PHP(5.6.4)跟目录列表看到了熟悉的以后缀.c结尾的源文件。如图,有个名为“Zend”的文件夹很重要,这个就是PHP的核心。于是在网上搜到了两个若干PHP扩展的教程http://www.laruence.com/2009/04/28/719.htmhttp://www.walu.cc/phpboo起初,耐心的看... Read More