【nginx运维基础(9)】了解PHP-FPM与Nginx的通信机制

2019-06-19
阅读 3 分钟
2.8k
每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP 文件在服务器上的解析需要用到 PHP 解释器,再加上对应的 CGI 协议,从而使服务器可以解析到 PHP 文件。

【SPL标准库专题(10)】Datastructures:SplObjectStorage

2019-05-25
阅读 2 分钟
1.5k
PHP SPL SplObjectStorage是用来存储一组对象的,特别是当你需要唯一标识对象的时候。PHP SPL SplObjectStorage类实现了Countable,Iterator,Serializable,ArrayAccess四个接口。可实现统计、迭代、序列化、数组式访问等功能。

【SPL标准库专题(9)】Datastructures:SplFixedArray

2019-05-24
阅读 2 分钟
1.5k
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快。

【SPL标准库专题(8)】Datastructures:SplHeap & SplMaxHeap & SplMinHeap

2019-05-23
阅读 2 分钟
1.9k
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现。根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。二叉堆还常用于排序(堆排序)。

【SPL标准库专题(7)】Datastructures:SplPriorityQueue

2019-05-22
阅读 2 分钟
1.3k
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头取出。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先取出。优先队列具有最高级先出 (largest-in,first-out)的行为特征。总结下来就是普通队列有先进先出原则,优先级队列有优先级高先出原则,这个优先级可以设置;

【SPL标准库专题(6)】Datastructures:SplStack & SplQueue

2019-05-21
阅读 2 分钟
1.5k
这两个类都是继承自SplDoublyLinkedList,分别派生自SplDoublyLinkedList的堆栈模式和队列模式;所以放在一起来介绍;

【SPL标准库专题(5)】Datastructures:SplDoublyLinkedList

2019-05-20
阅读 3 分钟
1.3k
简述 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址。 类摘要 {代码...} 实现了Iterator接口,可以快速实现迭代; 实现了 ArrayAccess 接口, 可以如数组般访问链表数据; {代码...} 其他的方法手册看看名称都能理解,就不说明了:[链接]

【SPL标准库专题(4)】Exceptions

2019-05-19
阅读 3 分钟
1.9k
了解SPL异常之前,我们先了解一下嵌套异常。嵌套异常顾名思义就是异常里面再嵌套异常,一个异常抛出,在catch到以后再抛出异常,这时可以通过Exception基类的getPrevious方法可以获得嵌套异常;

【SPL标准库专题(3)】Classes

2019-05-18
阅读 6 分钟
1.5k
我把SPL分为五个部分:Iterator,Classes,Exceptions,Datastructures,Function;而其中classes是就是做一些类的介绍(Iterator与Datastructures相关的类在各自文章内),在介绍这些类之前,先介绍几个接口:

【SPL标准库专题(2)】Iterator

2019-05-17
阅读 13 分钟
1.8k
SPL规定,所有部署了Iterator界面的class,都可以用在foreach Loop中。Iterator界面中包含5个必须部署的方法:

【SPL标准库专题(1)】SPL简介

2019-05-16
阅读 3 分钟
2.1k
根据官方定义,它是"a collection of interfaces and classes that are meant to solve standard problems" SPL是用于解决典型问题(standard problems)的一组接口与类的集合。 但是,目前在使用中,SPL更多地被看作是一种使object(物体)模仿array(数组)行为的interfaces和classes。SPL的核心概念就是Iterator。

【modernPHP专题(14)】内置的http服务器

2019-05-15
阅读 2 分钟
1.2k
PHP 5.4起就在CLI SAPI中内置了web服务器,但只是提供开发测试使用,不推荐使用中生产环境中。因为这个服务器接受处理请求时顺序执行的,不能并发处理。

【modernPHP专题(13)】ZendOpcache字节码缓存

2019-05-14
阅读 2 分钟
2k
字节码缓存不是PHP的新特性,有很多独立的扩展可以实现,比如APC、eAccelerator和Xache等,但是截至目前这些扩展都没有集成到PHP内核,从PHP 5.5.0开始,PHP内置了字节码缓存功能,名为Zend Opcache。

【modernPHP专题(12)】魔术方法小结

2019-05-13
阅读 4 分钟
1.2k
说明 魔术方法就是在特定场景下不需要调用而自动执行的方法。因为有魔术方法,所以我们的类可以写得很灵活~ {代码...} {代码...}

【modernPHP专题(11)】断言ASSERT

2019-05-12
阅读 2 分钟
1.3k
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。程序员断言在程序中的某个特定点该的表达式值为真。如果该表达式为假,就中断操作。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用...

【modernPHP专题(10)】理解output buffer

2019-05-11
阅读 3 分钟
1.7k
操作系统中使用磁盘高速缓存技术来提高磁盘的I/O速度,对高速缓存复制的访问要比原始数据访问更为高效。例如,正在运行的进程的指令既存储在磁盘上,也存储在物理内存上,也被复制到CPU的二级和一级高速缓存中。

【modernPHP专题(8)】匿名函数和闭包

2019-05-10
阅读 9 分钟
981
匿名函数 {代码...} 闭包 PHP在默认情况下,匿名函数内不能调用所在代码块的上下文变量,而需要通过使用use关键字。 {代码...} 闭包的好处 1. 减少循环 {代码...} 2. 减少函数的参数 {代码...} 3. 解除递归函数 {代码...} 4. 关于延迟绑定 {代码...} 几个配合回调或闭包的函数 bool array_walk ( array &$array , ca...

【modernPHP专题(9)】匿名类

2019-05-09
阅读 4 分钟
1.6k
类结构 {代码...} 什么是匿名类? 先理解以下三个例子 例1. 闭包函数都是继承Closure类 {代码...} 例2. 将一个匿名函数绑定到一个类中。返回Closure类 {代码...} 3. 第二参数为null,代表静态调用static {代码...} 匿名类有什么用? 给类动态添加新方法 {代码...} 模板渲染输出 Template.php {代码...} Article.php {代...

【modernPHP专题(7)】生成器语法

2019-05-08
阅读 3 分钟
1.5k
PHP5.5实现了生成器,每当产生一个数组元素则用yield关键词返回,并且执行函数暂停,当执行函数next方法时,则会从上一次被yield的位置开始继续执行,如下例子,只会产生中间变量$i,并只在每次循环的赋值;

【modernPHP专题(6)】类的延迟绑定(后期绑定)

2019-05-07
阅读 3 分钟
1.1k
以static::来调用,是在运行的那个时刻才执行绑定操作; 父类中有个方法是延迟绑定的,在子类::调用这个方法的时候它又回到调用的子类开始向上找; example1: {代码...} example2: {代码...} new static()与new self() self - 就是这个类,是代码段里面的这个类。new self就是实例化本类; static - PHP 5.3加进来的只得...

【modernPHP专题(5)】类多继承的替代方案Traits

2019-05-06
阅读 4 分钟
1.2k
traits是PHP5.4新进入的特性,其目的就是解决PHP的类不能多继承的问题。Traits不是类!不能被实例化。可以理解为一组能被不同的类都能调用到的方法集合。只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开。

【modernPHP专题(4)】抽象类与接口

2019-05-04
阅读 6 分钟
1.1k
php5支持抽象类和抽象方法。类前加 abstract, 此类就成为抽象类,无法被实例化,此类天生就是用来被继承的,给子类提供了一个类的模板;类方法前加 abstract,是抽象方法,抽象方法不能有方法体;

【modernPHP专题(3)】依赖注入与服务容器

2019-05-03
阅读 5 分钟
1.4k
依赖倒置是一种软件设计思想,在传统软件中,上层代码依赖于下层代码,当下层代码有所改动时,上层代码也要相应进行改动,因此维护成本较高。而依赖倒置原则的思想是,上层不应该依赖下层,应依赖接口。意为上层代码定义接口,下层代码实现该接口,从而使得下层依赖于上层接口,降低耦合度,提高系统弹性

【modernPHP专题(2)】反射机制Reflection

2019-05-02
阅读 8 分钟
1.4k
用得比较多的就只有两个ReflectionClass与ReflectionObject,两个的用法都一样,只是前者针对类,后者针对对象,后者是继承前者的类;然后其中又有一些属性或方法能返回对应的Reflection对象(ReflectionProperty以及ReflectionMethod)

【modernPHP专题(1)】php7常用特性整理

2019-05-01
阅读 6 分钟
1.8k
PHP7性能 7最大的亮点,应该就是性能提高了两倍,某些测试环境下甚至提高到三到五倍,具体可以了解以下链接: PHP7 VS HHVM (WordPress) HHVM vs PHP 7 – The Competition Gets Closer! PHP 7.0 Is Showing Very Promising Performance Over PHP 5, Closing Gap With HHVM PHP7革新与性能优化 常用特性整理 标量类型声明...