前言php
公司的APP响应速度比较慢,公司大神决定使用C语言编写的PHP框架Phalcon 代替原来的框架,响应速度有比较大的提高。之前只是据说过,没有深刻的了解过。即然工做中有用到,便花点时间了解了下,你啥都不懂,会被别人鄙视,须要不断的充电补齐本身的短板啊!html
第一感觉git
花了些时间看了phalcon 框架的文档,对这个框架有了总体的一些认识,说下个人一些感觉。github
1 主体代码C语言编写,执行效率确定比其它纯PHP编写的框架要高;
2 框架功能大而全,全栈式框架,WEB开发相关的组件都有,组件之间低耦合;
3 对象容器以及依赖注入的神奇使用,简化代码编写;
4 不少组件使用适配器模式,方便自定义开发扩展,只要实现适配器接口便可;
5 安全可靠,对WEB常见漏洞提供了相应解决方案,这对团队开发很是有帮助,想一想最近一些脱库事件,仍是有些后怕,开发拥有安全意识很是重要;
6 PHQL类SQL数据库查询语言,查询数据很是灵活,感受这个没啥用;
7 这个框架很灵活,没有固定的范式,开发时能够任意组织代码;
8 提供开发脚手架,枯燥重复的操做有相应的脚本代劳,是我懒人喜好的:)
9 命令行执行任务控制台
10 事件管理器HOOK机制,这个用起来确定很爽:)
11 基于角色简单权限管理机制,对于资源权限管理不复杂的应用绝对足够了redis
框架架构mongodb
之前接触过比较多的框架,好比CI,Qeephp,Laravel等,发现你们的实现套路基本上差很少,无外乎在MVC三层架构基础之上作些文章,实现的方式有差别而已。数据库
单入口
经过一个入口处理客户端响应,这个须要设置WEB服务器将全部动态脚本请求转发到单一入口上后端
路由以及分发器
须要设置路由规则,以及路由对应的处理控制器和方法,找到匹配路由以后,经过分发器转发执行,有一个路由组件和分发器组件实现这2个功能数组
控制器
用于对客户端请求进行响应,用于链接模型和视图对胶水缓存
模型
业务逻辑层,数据的CRUD操做相关,模型之间的关联关系管理
缓存层
使用适配器模式,后端支持主流的缓存服务,好比memache,redis ,mongodb 等,若是须要使用其它服务,能够本身扩展,实现适配器接口就好了
视图
客户端视图渲染,层次结构,视图继承,支持内置模版以及自定义模版引擎
多语言
支持多语言,这个对公司业务主要是在海外颇有帮助,话说本身实现也不难,也就一语言包而已,使用PHP数组就能够了:)
优点
1 功能大而全
2 执行速度快
劣势
1 学习成本高
2 须要安装PHP扩展
3 相比纯PHP框架维护成本大
适合场景
1 须要快速开发且对性能要求比较高
依赖注入
依赖的服务经过注入的方式得到访问,这个是Phalcon 框架的基础,经过依赖注入,各组件之间能够作到低耦合,又能得到其它服务的能力。依赖注入比较绕,初次了解可能会搞的晕头转向,熟悉了以后就行了。Phalcon 文档对依赖注入说的很生动很具体,从问题开始入手,一步一步引导如何实现依赖注入。依赖注入实现原理:建立一个对象容器,注册服务到对象容器,须要访问服务的实例经过对象容器访问服务,不一样的语言实现方式不同。
后记
说的东西很理论,没有相关实践的部分,主要是我只看了文档介绍,尚未实际使用过,使用过程当中会碰到什么坑,我如今说不清楚):之后有新系统开发或者业余搞的项目,会尝试使用它!
参考资料
【1】Phalcon官方文档
https://docs.phalconphp.com/en/latest/index.html
https://media.readthedocs.org/pdf/phalcon-php-framework-documentation/latest/phalcon-php-framework-documentation.pdf
【2】Phalcon官方网站
https://phalconphp.com/zh/
【3】Phalcon代码库地址
https://github.com/phalcon