PHP-CLI环境变量的设置和读取

标签: PHP   配置  

通常我们在维护PHP线上项目的时候,为了隔离配置和代码,会使用fastcgi_param的形式将环境变量定义在Nginx的配置文件中(Apache可以使用SetEnv指令)。这样在PHP-FPM运行过程中就可以使用getenv函数获取到环境变量的值了。

那对于PHP-CLI,我们又应该怎么设置它的环境变量呢?做法也很简单。

Alvan 发布于 2016-06-30 21:21

全文 »

MongoDB的findAndModify命令应用

标签: PHP   MongoDB   自增序列   任务队列  

MongoDB的findAndModify命令可以从数据库查找返回一个文档的同时更新/插入/删除文档,原子操作,线程安全,功能强大,原型复杂……
当然这也是没办法的事情,毕竟要应对各种奇怪的需求……

比较常见的应用有「自增序列」和「任务队列」。

Alvan 发布于 2015-01-05 22:29

全文 »

自制格式漂亮的PHP for Vim手册

标签: Vim   PHP   手册  

自己用PHP5.5已经有段时间了,由于本人很懒,一直也没去更新Vim中的PHP离线手册,到前几天为止都还停留在PHP5.3的版本,内容过时,加之原来的手册排版较乱,不太直观,于是抽了个时间自制了一份格(个)式(人)漂(喜)亮(好)的PHP5.5的函数手册,用于在Vim中作为帮助文档方便离线查看。顺便打包了个Vim插件,同时也加入了快捷查看在线手册的功能,有需要的同学可以下载回来使用。

Alvan 发布于 2014-07-26 00:35

全文 »

PHP生成类MongoId的分布式主键

标签: PHP   MongoDB   主键  

今天写了个简单的PHP函数,用来生成按时间增长的全局唯一主键。这类主键的作用主要是在分布式环境中保证每条数据能够有一个唯一标识,同时又有一定的自增长性以提高索引效率。当然也可以用来掩人耳目,毕竟一个简单的int类型的自增ID的话,很容易让人猜到你的数据量有多少了。

分布式环境下数据主键的生成方法其实是蛮多的,比如使用Mysql之类的自增ID,只需要设置好自增步长和起始值就可以满足基本要求了,还有如目前流行的文档型数据库MongoDB就提供了一个MongoId的实现,可以在客户端直接生成长度为24的自增长型全局字符串主键。今天写的这个PHP函数就是参考MongoId的算法实现的,不需要安装MongoDB扩展也可以使用。

Alvan 发布于 2014-03-28 17:00

全文 »

Facebook发布开源编程语言Hack

标签: PHP   Hack  

Facebook于周四开源了一款名为"Hack"的编程语言,该语言基于PHP,运行于HHVM,兼具PHP开发的便捷性和Java这类强类型语言的特点,使开发和测试更加容易,也能够帮助减少一些使用纯PHP开发时只有在运行时才能发现的Bug。

除了Hack这个名字值得吐一大槽之外,相对PHP来讲,Hack主要增加的是静态类型检查(PHP也有,例如函数参数类型限定,但并不完整),Hack可以标注函数签名和类成员的类型信息,还支持范型、Nullable类型、更明确的集合类型(PHP的array是map和list的合体)、lambda表达式甚至异步特性。

Alvan 发布于 2014-03-21 13:06

全文 »