7 篇文章 新特性

现代PHP新特性:命名空间、Trait、生成器、闭包、Zend Opcache、内置HTTP服务器等

现代 PHP 新特性系列(七) —— 内置的 HTTP 服务器

php-built-in-web-server

从 PHP 5.4.0 起,PHP内置了Web服务器,这对于认为需要Apache或Nginx才能预览PHP应用的开发者来说又是一个隐藏功能。这个内置的Web服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。Laravel Valet 起初就是使用这个内置的服务器,但是在1.1.0版本后将其替换为Caddy(查看相关新闻)。 1、启动 这个内置的Web服务器很容易启动,打开终端(…

现代 PHP 新特性系列(六) —— Zend Opcache

Zend OPcache

1、概述 字节码缓存不是PHP的新特性,有很多独立的扩展可以实现,比如APC、eAccelerator和Xache等,但是截至目前这些扩展都没有集成到PHP内核,从PHP 5.5.0开始,PHP内置了字节码缓存功能,名为Zend Opcache。 开始之前,我们先来看看什么是字节码缓存,以及字节码缓存的作用是什么。 众所周知,PHP是解释型语言,构建在Zend 虚拟机之上,PHP解释器在…

现代 PHP 新特性系列(五) —— 闭包和匿名函数

closure-use-multi

1、概述 闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。 闭包是指在创建时封装周围状态的函数,即使闭包所在的环境的不存在了,闭包中封装的状态依然存在。 匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。不过匿名函数仍然是函数,因此可以调用,还可以传入参数,适合作为函数或方法的回调。 注:理论上讲闭包和…

现代 PHP 新特性系列(四) —— 生成器的创建和使用

PHP

1、概述 生成器是 PHP 5.5 引入的新特性,但是目测很少人用到它,其实这是个非常有用的功能。 生成器和迭代器有点类似,但是与标准的PHP迭代器不同,PHP生成器不要求类实现Iterator接口,从而减轻了类的开销和负担。生成器会根据需求每次计算并产出需要迭代的值,这对应用的性能有很大的影响:试想假如标准的PHP迭代器经常在内存中执行迭代操作,这要预先计算出数据集,性能低下;如果要使…

现代 PHP 新特性系列(三) —— Trait 概览

trait-userauthencation

Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么;提供模块化实现。Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。 为什么使用Trait PHP语言使用一种典型的单继承模型,在这种模型中,我们先编写一个通用的根类,实现基本的功能,然后…

现代 PHP 新特性系列(二) —— 善用接口

modern-php-interface

接口不是现代PHP的新特性,但是非常重要,学会使用接口,可以极大提升我们的编程能力,所以在日常开发中应该尽可能多地使用接口。 接口是两个PHP对象之间的契约(Contract),Laravel底层就直接将接口放在Contracts目录中: 接口将我们的代码和依赖解耦了,而且允许我们的代码依赖任何实现了预期接口的第三方代码,我们不管第三方代码是如何实现接口的,只关心第三方代码是否实现了指定…

现代 PHP 新特性系列(一) —— 命名空间

laravel-response

声明:本系列文章以 Modern PHP 为蓝本,以 Laravel 源码为实例进行讲述,以便大家研究底层源码更加轻松。 1、什么是命名空间 如果你只需要知道现代PHP特性中的一个,那就应该是命名空间。命名空间在PHP5.3.0中引入,其作用是按照一种虚拟的层次结构组织PHP代码,这种层次结构类似操作系统中文件系统的目录结构。命名空间是现代PHP组件生态的基础,现代的PHP组件框架代码都…