欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP新特性之字节码缓存和内置服务器

程序员文章站 2022-06-23 10:58:27
zend opcache 1).从php5.0开始,内置了字节码缓存功能,名为zend opcache。因为php是解释性语言,php解释器执行php脚本时会解析php脚...

zend opcache

1).从php5.0开始,内置了字节码缓存功能,名为zend opcache。因为php是解释性语言,php解释器执行php脚本时会解析php脚本代码,生成一系列的zend操作码,然后执行字节码,每次的http请求都是这样,会消耗很多资源,使用字节码缓存可以缓存预先编译的字节码,减少响应时间,降低系统资源的压力。

启用zend opcache

默认情况之下,zend opcache是没有启动的。如果是自己编译php,执行的时候命令必须包含以下选项:

--enable-opcache

编译好php之后,还必须在 php.ini 文件中指定zend opcache的扩展路径,如下所示:

zend_extension=/path/to/opcache.so

php编译成功之后会立即显示zend opcache扩展的文件路径。可以使用下面的命令找到这个php扩展的路径

php-config --extension-dir

然后使用下面的代码可以确认该扩展运行正常

<?php
phpinfo();

配置zend opcache

推荐配置

opcache.validate_timestamps = 1 //在生产环境中设为'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1

可以访问php官方网站查看详细设置。

使用zend opcache

1).生产环境可以设置opcache.validate_timestamps=0。在开发环境中需要设置为1

内置的http服务器

1).启动 php -s localhost:4000 -c app/config/php.ini

2).不支持 .htaccess 文件。意味着不支持控制器模式。前端控制器用来转发所有的http请求,需要通过 .htaccess 文件或重写规则实现。

3).可以使用路由器脚本实现以上功能。但是只支持少量的url重写规则 php -s localhost:8000 router.php

4).判断使用的是哪个服务器:

<?php
if (php_sapi_name() === 'cli-server') {
 //php内置服务器
} else {
 // 其他web服务器
}

专题系列

php专题系列目录地址: github.com/xx19941215/…

php专题系列预计写二十篇左右,主要总结我们日常php开发中容易忽略的基础知识和现代php开发中关于规范、部署、优化的一些实战性建议,同时还有对javascript语言特点的深入研究。

总结

以上所述是小编给大家介绍的php新特性之字节码缓存和内置服务器,希望对大家有所帮助