Lumen5.4 实践 -- 浅入分析 (一)

前言:用Laravel已经走过很多项目了,很多产品的用户和流量也慢慢的积累起来了,也慢慢的发现了Laravel的开发虽然比较快,模块化开发组件化开发敏捷开发,但是在速度上还是有所劣势,越是简便的东西,就越是有很多东西支持他,整个laravel的背后有大量的组建、和容器支持、考虑的地方很多,然后性能也从当初laravel4之后的性能慢慢下去了。

Lumen号称为速度而生、是一个轻量级的框架,同时在很多人眼里也给它起了一个贬义的名字 阉割版Laravel ;多么悲伤的一个名字,laravel确实有很多东西没有必要加载、虽然有各种configCacherouterCachecompiled 来加载优化。。但是。。源头其实还是背负太多,很多东西是Laravel作者好意,让更多人的需求Laravel都能适合、但是其实真正的国内项目中 很多东西是没有必要的,有要用的话,不如自己去加载或者 composer ,所以就有了 Lumen

现在那么我作为一个Laravel的过来人来分析分析LumenLaravel的一些变化。

一、目录结构

从目录结构上来看就发现少了不少东西

最外层:

1. 项目/config/*  
2. 项目/phpspec.yml  
3. 项目/gulpfile.js  
4. 项目/server.php  
5. package.js  
6. .env 简化了  

从最外层来看 config 的一些加载已经默认没了,而是加载更轻便的.env,也不在支持前端模块化和前端编译工具了,服务器就敢服务器的事。

项目入口:
public/app.php

lumen 是直接加载的 bootstrap/app.php  
laravel 则是先加载依赖模块,再加载的 bootstrap/app.php而后加载的第三方的 Kernel 和 Request 模块.  
项目/app/Http/ 下:

1.少加载了Kernel.php  
2.少了Requests模块  
3.Route的支持相对于来说也减肥了。  
项目/resources/ 下:

1. 少了语言模块  
2. 少了前端模块化的模块  
3. views的默认页面和默认的一些样式也没有了  

底层代码分析

1. bootstrap/app.php下门面模式是默认关闭的 默认尽量的减少加载  
2. 很多laravel有的辅助函数直接移除了。  
3. 默认的门面也减少了很多,File缓存也直接移除了 Cache和Reids合并了。  
4. php artisan 的很多命令也减少了 连生成env的Key也得自己手动生成  
5. 默认的组建和依赖也减少了。  

lumenlaravel的测试结果各大网站上都有。初期运行速度应该是5倍,消耗比例是10倍。

lumen号称为速度而生,为APP等写接口是不错的选择,既保留了laravel的组建化开发的初衷也保证了 初始精简版的效率

下篇开发为小伙伴们准备搭建文档 。。

您的支持是对我最大的鼓励!