【PHP框架】谈谈设计的一些事
在开发一个框架或使用一个框架之前,你要知道什么是框架?`框架`就是为了高效开发且能多次利用的代码集合。
Hello,框架?
在开发一个框架或使用一个框架之前,你要知道什么是框架?框架
就是为了高效开发且能多次利用的代码集合。
关于主流框架
Thinkphp3.1、3.2、5.0
国内开源框架thinkphp
比较出名,首次接触thinkphp框架是3.2版本,这个版本很不错(在开始开发框架时有很多在3.2
的影子),由于工作的原因用过3.1
版本,那时候就很吐槽3.1的目录结构,3.2目录结构就很清爽。
现在thinkphp5
也在开发测试阶段,不久前接触了这个版本,给我最直观的就是,作者是想把先yii2.0
和laravel
搬过来,然后再改改,之前用thinkphp3.2
版本后,再去学习yii2.0
,看到这两个框架的版本很像,但thinkphp3.2相比yii2.0而言,学习成本会低很多(给我的直观是这样)。
thinkphp5
想做成一个极简的专为API开发的框架,经常会看到有人在群里问,tp5能开发web吗?
关于这个问题,我也回答一下:你知道API吗?
YII2.0 和 laravel
两个框架给我的直观的感受的,太大了! 由于没有深入学习,在这里我就不再多说了。
你常看到别人说的框架性能比较、并发比较
之前我以为框架性能
是语言的事情,所以想,都是同一种语言开发的,怎么还会有性能差异呢?
后来想明白了,框架、并发性能就是用框架来跑程序而得到的相关结果
,那么怎么才能做到性能最大呢?用就是原生的语言不写多余的代码
,一般框架都会去加载一些类库、函数、配置,而越自由化的框架,IF语句
就越多,如果我要一个性能很高的框架那怎么来设计呢?(答案已经在上面说了)
框架中应该有的一些“小程序”
- 加载机制
- 错误处理
- 配置处理
- 路由机制
- (模块机制)
- 扩展机制
- 缓存机制
- (模板引擎)
(基本就这些吧)
为何我放弃了模板引擎和缓存机制
模板引擎
开发这个框架时,我没想过第二个人会用,虽然在代码作得比较友好(自我感觉),很详细的注释了。
但是我是一个用sublime text
编辑器的的程序猿嘛,用代码片段就能解决这个问题;
其次,我现在所在的公司是没有美工的,那么所有要套用的html模板都要我自己来做。
那在注重性能问题的情况下,编译模板就这样被废除了,也就是没有所谓的模板引擎,没有编译过程,性能相比提升了那么一丢丢(是这样吗?)
缓存机制
在制作时,我想:
网站流量小的直接查库;流量大的就用mongodb!
而我当时能想到网站流量大的也只有商城,而小企业一般接到的商城流量也不会特别大,那么在设计商城的数据模型时,可以使用mongodb,再用mysql做后台和特殊数据相关的存储数据库(不知道这里有没有吐槽的?仅仅我的想法!)
于是在制作框架时,我选择了废除缓存!
开发一个框架
首先,你清楚为什么不用主流框架而要去开发,不然会在制作的框架看到别的框架,那么你是不是在做一些多余的事情呢?(当然,练手的可以吐槽了,囧囧)
确定现状,设计出怎样的框架才能符合“我”心中的要求呢?
基于之前用其他框架的经验着手开发。
说说我的TFK框架
TFK是tingfeng-key
的简称,在github、微博都可以用这个全称(tingfeng-key
)搜到我(记得加关注哦
),这个框架默默的放在我的github项目中,而使用说明也没有给出,why?
因为目前这个框架还没有达到我想要的效果。
来自TFK框架的寄语:
我只想在潮流下保持自我并能被你们看到:我在慢慢的进步
它很可爱是吧?目前它只有37Kb
哦,希望它有一天能像一阵风一样来到我们的面前显摆它的可爱之处吧!
(create 2016/07/07 by tingfeng-key)