> 备注:以下都只是个人观点,模块适合中型项目,如果是小型项目还是直接使用微擎框架就好
## 1.为什么要做这样一个模块?
对于一名`php`程序员,工作经验大概为一到三年,第一接触到微擎这个框架,应该是比较头痛的。因为这个框架或者说这套系统和咱们平时学习或者使用的框架还是存在差异的。如果你的`php`基础学的很好,那么我估计你看一下他们文档或者视频教程研究一下他们的`demo`估计就能上手开发了。但是肯定是还有很多不爽的地方。举个例子,使用过`thinkphp`框架开发过项目的同学都知道咱们操作数据库是可以使用链式操作的。
如:
~~~
$user = Db::table('user')
->where('status',1)
->select();
~~~
而微擎则是
~~~
$user = pdo_getall('users', array('status' => 1));
~~~
当然微擎也有链式操作,但是使用起来也是极其不习惯的([点击查看微擎手册](http://s.w7.cc/index.php?c=wiki&do=view&id=1&list=465))
~~~
$query = load()->object('query');
$row = $query->from('users', 'u')->limit(1, 10)->getall('uid');
~~~
除了数据库操作还有模块结构,比如微擎的站点入口文件 `site.php`([点击查看微擎手册](http://s.w7.cc/index.php?c=wiki&do=view&id=1&list=387))
看`demo`他们所有执行的入口方法都是放在这个里面的程序简单一点还行如果是稍微复杂一点的程序那么就需要对你开发的模块进行结构优化,重新设计,我们习惯`mvc`的设计模式嘛。
还有你不仅仅需要了解他的框架的’结构、路由、数据库操作、各种系统函数,变量参数、应用功能文件等等,你还要了解他的模块安装、卸载、删除。
总的来说对于一些经验不是很多的phper来说上手起来是要花点时间的,尤其是对于习惯用用`thinkphp`、`Laravel`、`yii`等等框架来说做微擎模块开发是极其不爽的,除非你们公司有已经优化好了的模块给你开发。
## 2.对于模块的性能和冲突问题
首先咱需要明确一个点,微擎的用户群体,微擎的大部分的使用者应该都是中小型企业或者个人,而他们大部分的应用的访问量应该是都不高的,如果有个几十万几百万的访问量,那么这种企业完全是有实力有资金去组建自己的开发团队,或者请人重新开发。
框架里面套框架肯定是存在各种冲突问题的,所以咱必须一一的去找出这些冲突,然后去一一解决。
性能上我暂时没有去做测试,如果后面的同学有做过测试的,欢迎你在群里联系我,将结果公布给大家。
## 3.模块开发优势
### 3.1可移植性强
如果之前有使用`thinkphp5`框架开发的项目可以尝试移植进来,肯定当然需要改一些东西,像路由,像对数据库操作的条件上要带上`uniacid`等等。
当然移植进来的同时也是可以移植出去的,如果你使用了这个模块开发项目是完全可以剥离出微擎,做单独使用`thinkphp5`来做开发的