性能一直是Laravel最大的话题之一,但它确实为很多PHP开发者提供了很多不同的知识,这里再次提速框架。基本的(老生常谈的)缓存,会话,队列是用Redis驱动框架内置的缓存路由缓存phpartisanroute:cache配置缓存phpartisanconfig:cache根据接口幂等性使用缓存升级OPcache。没有什么特殊原因,直接上这个,把opcache.validate_timestamps设置为0,这样你生产环境的PHP代码就永远不会自动更新了,和其他编译型语言类似,每次部署代码都需要重启php-fpm加载新代码。更多信息请参考这篇文章https://gywbd.github.io/posts/2016/1/best-config-for-zend-opcache.html减少不必要的中间件。比如Laravel就内置了跨域中间件。如果只为APP提供接口,根本不会有跨域问题。可以直接注解这个中间件比如内置API限制速度接口可能不适合很多项目场景。减少服务提供者,比如interface,不需要view服务,session服务,密码重置服务等。当然,重点是那些混合了API和Admin的项目,使用Full-stackframework,相信有许多使用Laravel-admin或DcatAdmin的项目。之前写过一篇关于如何减少你的服务提供者的文章,因为从Laravel5.5开始,你可以使用第三方包自己注册,然后Laravel自动发现这些服务提供者。您可以运行此命令来查找您注册的服务提供商:phpartisanpackage:discoverDiscovered包:dcat/laravel-adminDiscovered包:facade/ignitionDiscovered包:fideloper/proxyDiscovered包:fruitcake/laravel-corsDiscovered包:laravel/tinkerDiscovered包:nesbot/carbonDiscovered包:nunomaduro/collisionPackage清单g生成成功。这里我们可以清楚的看到dcat/laravel-admin,我们只需要到项目根目录下的composer.json中写入如下配置即可dcat/laravel-admin"]}}执行完之后,执行phpartisanpackage:discover,会发现dcat/laravel-admin已经消失了,但这也意味着我们不能使用Admin,所以我们还需要添加一个条件要手动注册服务提供者,我们可以在AppServiceProvider.php中添加如下代码\服务提供者;classAppServiceProviderextendsServiceProvider{/***注册任何应用程序服务。**@returnvoid*/publicfunctionregister(){//}/***引导任何应用程序服务。**@returnvoid*/publicfunctionboot(){//这个条件有很多种方式,甚至可以通过url判断if(config('admin.enable')){AliasLoader::getInstance()->alias('行政',管理员::类);$this->app->register(AdminServiceProvider::class);}}}修改后发现性能提升了40%(因为admin注册了很多路由,启动了很多东西)机器:2U4G机器CentOSLinuxrelease8.3.2011环境:(使用Laradock全家桶,开启OPcache)PHP_VERSION=7.4PHP_FPM_INSTALL_OPCACHE=true最后求了一张运维API服务器的图片,优化后的效果很好OK。链接https://www.shiguopeng.cn/archives/374https://www.shiguopeng.cn/archives/507
