背景
事变源于在做框架选型的时刻,我们对营业须要的手艺栈举行了剖析,发明我们须要的框架只须要包括路由、数据库、Redis、日记,就能够满足需求了,人人议论后最先动手框架的挑选。
选型
议论框架选型时部份人看法倾向运用Laravel、Yii这类富功用框架,这些框架供应的功用是完全能够满足营业需求的,但是阻挡的看法则是这些框架的进修本钱比较高,新人接办不容易,而且机能较差,许多特征都用不到;而另一部份人则倾向于运用Slim、Yaf, 框架供应了基本的路由,其他功用组件则经由过程lib加载进来,如许就能够按需加载种种功用组件,没有过剩的feature,进修本钱相对较小,一样这类计划也有许多阻挡看法,各个组件是不是能与框架连系的很好,每一个lib有各自的API作风,进修本钱也不小,而且怎样保证各个lib的稳定性。
在如许的情况下,就有了构件一个满足各方需求框架的主意,团队愿望框架只包括了经常使用的功用组件,像Event、Behavior、Broadcasting、Notification这些很少用到的功用只管不须要,削减不必要的进修本钱;为了支撑一些营业万万级的PV,愿望框架的机能足够好;同时愿望框架的可维护性较好,针对一些特别的场景,框架能供应优越的扩大才能,将一些功用集成到框架里。
末了议论决议本身开辟一个框架,于是就最先了团体框架的设想。
设想
框架
首先是底层框架,设想底层框架的第一个题目就是怎样治理框架的一切类及其依靠关联,对照成熟的计划有依靠注入和基于组件设想两种计划。因为斟酌后续须要对各个组件举行单元测试,挑选了依靠注入的计划。
功用组件
第二个就是框架的中心组件,框架包括的基本功用组件有数据库、考证、日记、Session、Cookie、Redis等,封装这些组件有两种计划,能够采纳外部开源的composer组件,或许本身完成,因为差别composer库API作风不一致,而且许多库require文件太多,决议这些中心组件均本身完成。
易用性
要完成一件事,许多富功用框架供应了多种体式格局,在开辟一个功用时,既能够运用A要领,又能够运用B要领,偶然用户能够很疑惑,究竟应该用哪一个呢;而且跟着营业迭代,到处是种种异同的运用体式格局。所以我们倾向于只供应单一的体式格局,削减用户挑选的疑心,同时供应体系的可维护性。
扩大
框架包括了经常使用的基本组件,为了支撑运用一些特别的组件,框架集成了composer,而且供应了基于组件的扩大才能。
总结
末了,经由三个多月开辟,框架开辟完成,而且已成熟在几个产物运用;框架的有些处所能够还须要不停优化,也迎接人人说起种种Issue,我们的目的是打造一款国内、优异的PHP框架。
末了直接列一下框架以及开辟手册。:)
BetePHP: https://github.com/betephp/be…
中文手册: http://betephp.com/zh/