Yii2依赖注入

依赖注入是现在非常流行的设计模式,特别是在构建大型项目的时候应用的非常多。依赖注入帮我们管理依赖以减少出错的概率,也给程序进行一定程度的解耦。 Yii2依赖注入实现依赖注入容器系统不会智能到自己分析程......

阅读全文

Python的with语句原理

这是我们最常使用with语句的例子,打一个文件,并自动关闭资源。 123with open('/tmp/log') as f: for line in f: print(line)......

阅读全文

Yii2的请求生命周期

一个web请求的生命周期,是说每个web请求从创建到销毁都要经历的各种阶段,每个阶段做指定的事情。 流程图 流程说明 用户的请求被指向入库文件,开启生命周期 入口脚本会加载配置,然后创建一个appli......

阅读全文

Python函数内部修改全局变量

Python中函数内部使用全局变量有个global坑。 问题1234567891011121314a = 'jack'b = {}def f(): a = 'tom' ......

阅读全文

理解Yii2属性概念

属性与成员变量的区别从访问的形式上看,属性与成员变量没有区别,但类的成员变量和属性其实不是同一个概念。 成员变量是一个“内”概念,反映的是类的结构构成。属性是一个“外”概念,反映的是类的逻辑意义。 成......

阅读全文

理解PHP匿名函数与闭包

写过JS的同学应该能体会到闭包的强大和便利之处,PHP5.3开始也引入了闭包的特性。 理论上讲,闭包和匿名函数是不同的概念,但PHP将其视作相同的概念。 匿名函数(闭包函数)匿名函数(Anonymou......

阅读全文

PHP实现多服务器session共享

共享需求高并发的大型网站,一般各个模块会部署在不同的服务器,或一个程序多服务器部署等等,这些情况都会涉及session共享的问题。 PHP默认的session存储机制是利用本地的文件系统,自然无法多服......

阅读全文

Nginx配置文件中location匹配优先级

一直以来都困惑一个问题,如果一个请求理论上能同时匹配多个location的话,最后Nginx是以什么规则进行选择的呢? 其实是与location的类型有关系,不同的类型有不同的优先级。 四种类型等号类......

阅读全文

MySQL中utf8mb4字符集如何选择

万年的习惯,MySQL使用字符集utf8,突然有一天发现数据入库报错,查询一番发现新名称:utf8mb4。 utf8mb4是什么MySQL在5.5.3之后增加了这个utf8mb4的编码,因为原来的ut......

阅读全文

使用GDB调试PHP源码

想深入了解PHP底层,就必须阅读PHP源码,想理解PHP源码就一定会用到调试工具GDB。 GDB介绍GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调......

阅读全文