周末折腾PHP的几个事情
这周六公司搞了一个所谓的”技术交流大会”,呃,其实说白了就是阶段性地展示一下成果,拿出来和大家了解了解。我这边比较惭愧没啥系统架构上可以谈的,于是就扯了一个Vim的推广slide (下周整理完了准备贴出来)。
结果是周末就只剩今天一天,我也懒得继续填BoP的坑,调教完Emacs前,暂时拿Sublime Text 2来凑合一下——要知道用Vim来做翻译实在太坑爹了,几个模式来回切换还要切换输入法总是搞的手忙脚乱,某也尝试过easy vim,不过还是未果——始终用不惯鼠标。
商务把刚刚出了点问题的单车去修理了一下,中午吃了个饭后静下心来也没心思推gal或者看片,于是索性望了望某那个冗长的to-do list——久违地折腾一下吧——结果是搞到现在囧。
PHP 5.4 在Lion上编译
1 2 3 4 5 6 7 8 9 10 11 12 | |
今天打算把mac姬的php升级到5.4.0尝试一下,结果make的时候报了如上错,以为又是brew里带的readline有问题,检查了$CFLAGS等等环境变量后又换了自己编译的readline还是没用,于是怀疑是林檎的llvmm-gcc有问题(xcode的autotools?);再尝试了gcc-4.2后还是无果。于是又求助大G,最后找到了相关信息,解决方法比较…无语,把gcc的include path顺序换一下就好了。具体方法如下
- 执行
./configue,生成Makefile - 修改Makefile,在某的情况下是第146行,把
$(MH_BUNDLE_FLAGS)移动到最后去。
1 2 3 4 | |
- 继续make就解决了
另外,每次升级php在mac姬上都比较麻烦,而且环境隔离比较累,例如extension、配置文件、启动bin等等。虽然之前有过和rvm、pythonbrew、perlbrew一样的phpbrew,不过在某的情况里不太适用,近期打算自己写一个。
查询PHP文档太麻烦
这个问题相信不是PHP的问题…每种语言、每个程序猿都有这个问题,而对于某来说,在CLI下还得挪到浏览器里搜索是件很不情愿的事情。于是想起了pman这个东西,使用起来非常方便。
pear install doc.php.net/pman
然后和man一样
pman strlen

在vim里可以调用
!pman foo
甚至可以设置后,使用K来快速查看cursor所在keyword的文档,只需要在vimrc里加入
autocmd FileType php setlocal keywordprg=pman
不过话说回来…在某这里按q退出后vim会提示结束还得按下enter才能回到vim界面,而且如果想查更详细的文档还是得打开php.net来查。受到这篇文章的启发,打算把php.net的爬下来自己做一个镜像来做文档查询功能,速度快,也有模糊匹配。具体做法官网已经给出了具体做法。我就直接说说我的做法吧
- 用rsync把需要的文件给爬下来…这个取决于你的网速了,只需要文档的话可以参考如下命令
1 2 3 4 5 6 7 8 | |
- 这样的文件总大小大约在1GiB左右,不过文件比较多,耐心等待一下吧
- 拉下来的网站文件本身都是php的,所以我们需要一个php的服务器环境,并且最好能支持sqlite3扩展(这个有关搜索功能)
- 按照官方给的建议设置apache(我也懒得折腾nginx了)
- 不过URL跳转似乎有点小问题,我又懒得折腾所以用nginx转发过去了,设置可以参考下面:
1 2 3 4 5 6 7 8 9 | |
- 跑起来,访问一下如果一切正常的话,就和php.net官方一样啦。实际上那些镜像也就是这么做的(ry
当然这还不是全部,还可以在Chromium酱的搜索引擎里设置一下,添加一个php文档,URL可以是http://foo.bar/manual-lookup.php?pattern=%s,这样是不是就更加好玩实用了呢XDD

PHP 5.2和5.3还有5.4到底有啥区别…
其实某真的没认真了解过,借口是其实某也没多了解php,懂点皮毛而已,不过大概的概念是有的。官方给了一篇迁移的说明,还是打算认真看看;当然也不能少了升级到5.4的说明。
可以看到5.4后php也有向ruby、python、javascript等语言学习的地方…最近因为听到不少人发表了
PHP就是码农的语言
这样的言论。
对自己熟知的工具、事物被说这样的话总有点心理抵触,不过再深入理解他们的论据后确实有一定的道理,多学习和借鉴先进生产方式的思想总是有一定益处的。说白了还得提高自己的档次啊XDD



