framework

thinkphp 框架HTTP请求流程

thinkphp 框架HTTP请求流程

对于一个HTTP应用来说,从用户发起请求到响应输出结束,大致的标准请求流程如下:

  • 载入Composer的自动加载autoload文件
  • 实例化系统应用基础类think\App
  • 获取应用目录等相关路径信息
  • 加载全局的服务提供provider.php文件
  • 设置容器实例及应用对象实例,确保当前容器对象唯一
  • 从容器中获取HTTP应用类think\Http
  • 执行HTTP应用类的run方法启动一个HTTP应用
  • 获取当前请求对象实例(默认为 app\Request 继承think\Request)保存到容器
  • 执行think\App类的初始化方法initialize
  • 加载环境变量文件.env和全局初始化文件
  • 加载全局公共文件、系统助手函数、全局配置文件、全局事件定义和全局服务定义
  • 判断应用模式(调试或者部署模式)
        

[原创首发]关于如何正确使用PHP框架及如何选择框架之我见.

用PHP 开发程序这么多年了,今天想和大家谈谈如何正确使用PHP框架.

即关于PHP开发什么时候用框架,用不用框架,用什么框架,不同项目是否用不同框架,是否要学习多个框架,付出多少学习成本等问题.

先说一下,我用过的框架有:Swoole, Laravel, phalcon ,symfony, codeigniter, thinkphp.

这几个框架都有什么特点? 有没有做什么项目都通吃的框架?

先说一下swoole,swoole是用C写的PHP扩展,性能很高,通常用于写后台服务和网络通信程序.,但是对于一般的普通web程序它不太适合.并且学习难度大.当然如果你追求性能,写后台服务和接口还是适合的.

再说一下 Phalcon这个框架,同样的C写的全栈框架,以php扩展方式发布,性能可以说是最好的.但是因为一是英文的文档,要求你英文比较好.phalcon在国内用的人比较少,所以中文文档不多.phalcon写web程序和接口都是很好的.但不适合写后台服务.还有一点是这个框架虽然好,但是因为是C写的,如果有一些bug,就要等官方修复,或需要你懂C语言自己来修复.还有一点扩展性不好,如果你想加新功能,比如mongodb数据库支持,它是支持的,但是需要是老的php mongo扩展,用新的php mongodb扩展的话,就需要写php代码来实现,这就降低了性能.所以说这框架很好,但还是有一些不便.

其次是Laravel这个框架,最近可是风头正旺,号称最好的框架,以优雅著称.也像phalcon一样,用到了最新的一些概念:如composer,依赖注入,服务定位等.国内用的人也不少,中文文档及资料也比较多.但是我想说的是性能是这个框架的硬伤,新安装的laravel 5.1 框架 输出一个hello world 每秒rps 才达到几十, 而最 新发布的laravel 5.5 及性能居然还不及laravel 5.1版.究其原因是因为这个框架一启动就加载了一百多个文件,这就是性能很低的原因(IO开销很贵的!). 这个框架再好,但是性能太低,就需要拿硬件来支撑.除非你是土壕,否则还是不建议用Laravel 这个框架.

再说一下 …

            

php 框架应有的功能

php 框架应有的功能

高性能,MVC,缓存  数据缓存 与 页面缓存,生成静态html,调试模式,编译机制,类库导入,URL和路由,数据库,模块分组,自动验证和完成,扩展机制,日志,错误,惰性加载,模板引擎,行为,ORM,DAO/ActiveRecord,主题,安全性与XSS过滤,Layout,widget,依赖注入,控制反转,面向方面(AOP),事件,服务定位,命令行,rest,片段缓存,权限管理,认证,控制器,模型,驱动,类库,扩展,函数库,钩子,配置文件,消息队列,任务调度,服务提供者,服务容器,

=============

新版本:

 

高性能*
Env*
MVC*
缓存*-
数据缓存
浏览器缓存(http缓存)
页面缓存*-(配置哪个url可缓存,及缓存时间,只有GET请求可缓存)
生成静态html
调试模式*
编译机制*-(模板有)*
类库导入*(psr4自动导入)*
URL生成 *
request *
response *
路由*- (自动路由*,fallback路由-,闭包路由*,类路由*,方法路由*,分组路由*,资源路由,命名路由*)
数据库*
session*
cookie*…

            

phpwind发布windframework开源开发框架

今日,知名互联网产品与服务提供商phpwind正式推出通用的php开源技术框架‘windframework’。基于phpwind多年专注php开发积累沉淀下来的技术和解决方案,windframework将为未来推出的phpwind下一代社区产品提供统一的应用开发架构服务。而作为一款通用型的框架,windframework也将为开发者提供更为简单、安全、扩展性良好的应用开发支持。…