1. 背景

平时开发最头疼之一就是各种配置

  1. 一个项目往往会包含各式各样的配置信息,且不说数据库、redis、memcache这些常用的配置,还会有很多业务上的配置。
  2. 线上、测试和开发环境配置各不一样,每个环境都要保存一份...
查看全文

适配器模式

组合优于继承
学习设计模式,最经常听到的一句话就是组合优于继承,因为使用组合,可以使参与者之间的绑定更宽松,在重用、结构和修改等方面会有很多的有点。这个和继承不同,继承类或者所继承的类中包含已经实现的方法,这其实也是一种绑定,使用组合,就没有这种紧密绑定的缺点。使用继承的适配器类图
使用继承的适配器类图
使用组合的适配器类图
使用组合的适配器类图

组合适配器的例子

有一家温湿度传感器公司,这个传感器可以测试空气的温度和湿度。分别调用getTempe...查看全文

很多时候,我们会使用 PHP的$_SERVER数组,通过这个数组,可以获取一些服务器的变量信息。但是不同的模式下,这个全局数组是不一样的。比如,在web模式下,$_SERVER是获取的fastcgi_params,在cli模式下,获取的是环境变量(也就是常见的Linux 的export设置的)举个例子,我们要设置$_SERVER['AAAAA']='test_data'刚开始,不管web模式下,还是cli模式下,都是没有这个值的。web模式cli模式

更改nginx 的环境变量

找到fastcgi_params文件,一般是和nginx.conf在同一个目录
$ sudo nginx -s reload
然后刷新页面

更改cli模式先的环境变量

$ vim ~/.bashrc
$ source ~/.bashrc
$ php -r 'var_dump($_SERVER["AAAAA"]);';
查看全文

其实PHP的内存管理是包含引用计数和写时复制两部分,这篇文章主要是介绍写时复制。

简要介绍

其实写时复制在计算机中有很多应用,它只在必要的时候才会进行深拷贝,也就是把保存的值连同内存一块拷贝一份,可以很好的节省效率。比如,Linux在fork子进程的时候,不...查看全文