听风(tingfeng-key)的个人博客

听风(tingfeng-key)的个人博客

关于我

在理想和生活边缘拼命摩擦的90后


所有分类


友情链接

【PHP框架】谈谈设计的一些事

在开发一个框架或使用一个框架之前,你要知道什么是框架?`框架`就是为了高效开发且能多次利用的代码集合。

Hello,框架?

在开发一个框架或使用一个框架之前,你要知道什么是框架?框架就是为了高效开发且能多次利用的代码集合。

关于主流框架

Thinkphp3.1、3.2、5.0

国内开源框架thinkphp比较出名,首次接触thinkphp框架是3.2版本,这个版本很不错(在开始开发框架时有很多在3.2的影子),由于工作的原因用过3.1版本,那时候就很吐槽3.1的目录结构,3.2目录结构就很清爽。

现在thinkphp5也在开发测试阶段,不久前接触了这个版本,给我最直观的就是,作者是想把先yii2.0laravel搬过来,然后再改改,之前用thinkphp3.2版本后,再去学习yii2.0,看到这两个框架的版本很像,但thinkphp3.2相比yii2.0而言,学习成本会低很多(给我的直观是这样)。

thinkphp5想做成一个极简的专为API开发的框架,经常会看到有人在群里问,tp5能开发web吗?

关于这个问题,我也回答一下:你知道API吗?

YII2.0 和 laravel

两个框架给我的直观的感受的,太大了! 由于没有深入学习,在这里我就不再多说了。

你常看到别人说的框架性能比较、并发比较

之前我以为框架性能是语言的事情,所以想,都是同一种语言开发的,怎么还会有性能差异呢?

后来想明白了,框架、并发性能就是用框架来跑程序而得到的相关结果,那么怎么才能做到性能最大呢?用就是原生的语言不写多余的代码,一般框架都会去加载一些类库、函数、配置,而越自由化的框架,IF语句就越多,如果我要一个性能很高的框架那怎么来设计呢?(答案已经在上面说了)

框架中应该有的一些“小程序”

  1. 加载机制
  2. 错误处理
  3. 配置处理
  4. 路由机制
  5. (模块机制)
  6. 扩展机制
  7. 缓存机制
  8. (模板引擎)

(基本就这些吧)

为何我放弃了模板引擎和缓存机制

模板引擎

开发这个框架时,我没想过第二个人会用,虽然在代码作得比较友好(自我感觉),很详细的注释了。

但是我是一个用sublime text编辑器的的程序猿嘛,用代码片段就能解决这个问题;

其次,我现在所在的公司是没有美工的,那么所有要套用的html模板都要我自己来做。

那在注重性能问题的情况下,编译模板就这样被废除了,也就是没有所谓的模板引擎,没有编译过程,性能相比提升了那么一丢丢(是这样吗?)

缓存机制

在制作时,我想: 网站流量小的直接查库;流量大的就用mongodb! 而我当时能想到网站流量大的也只有商城,而小企业一般接到的商城流量也不会特别大,那么在设计商城的数据模型时,可以使用mongodb,再用mysql做后台和特殊数据相关的存储数据库(不知道这里有没有吐槽的?仅仅我的想法!)

于是在制作框架时,我选择了废除缓存!

开发一个框架

首先,你清楚为什么不用主流框架而要去开发,不然会在制作的框架看到别的框架,那么你是不是在做一些多余的事情呢?(当然,练手的可以吐槽了,囧囧)

确定现状,设计出怎样的框架才能符合“我”心中的要求呢?

基于之前用其他框架的经验着手开发。

说说我的TFK框架

TFK是tingfeng-key的简称,在github、微博都可以用这个全称(tingfeng-key)搜到我(记得加关注哦),这个框架默默的放在我的github项目中,而使用说明也没有给出,why?

因为目前这个框架还没有达到我想要的效果。

来自TFK框架的寄语: 我只想在潮流下保持自我并能被你们看到:我在慢慢的进步

它很可爱是吧?目前它只有37Kb哦,希望它有一天能像一阵风一样来到我们的面前显摆它的可爱之处吧!

(create 2016/07/07 by tingfeng-key)