公司开发一直使用的是OneThink框架,由于需求需要,想写一个系统,但是又要和公司系统不完全分离,故数据库要使用一个,方便查表。
ThinkCMF是一款基于ThinkPHP+MYSQL开发的中文内容管理框架(CMF),关键开源。
安装
去到官网下载最新的cmf框架,然后直接将文件夹放到开发目录,在hosts文件中配好域名就可以直接进行安装了,非常方便。
但是问题来了,在安装过程中会让你输入数据库前缀,如(think_),我的要求是和公司的OT公用一张表,但是倘若你直接输入think_,它会报错,原因是表名冲突,由于OT在安装时也会默认导入很多常规表,这是如出一辙的。
解决方法:打开application文件夹,进入install,找到install3的页面,将必须填写表前缀删掉,这样就可以在安装时使表前缀为空,避免后期带来不必要的麻烦。
使用
那么,安装成功的惊喜不用持续太久,因为cmf的写法与ot还是存在一点差别的,不过我个人还是更喜欢cmf中的写法,每一个功能块的都得很开,所有功能都基于application文件夹,每一个单独一个文件夹,里面写好控制器和公共方法以及模型,功能之间互不干涉,很清晰。页面文件位于admin下的theme和theme文件夹下,也是单独文件夹形式。
新建功能
比如我们要新建一个管理商品的功能(Goods),首先在application中新建一个Goods
文件夹,在Goods中新建一个Common、Controller和Model文件夹,在Controller中新建文件 GoodsListController.class.php
,对应着在Model中建ListModel.class.php
,在 Common
中新建文件Function.php备用,在 /Admin/Theme/
下新建Goods文件夹,新建文件index.html
,这时,一个基本的功能模块雏形就形成了。
两个小坑
在所以文件都写好,也在控制器中
$this->display
了后,并且在后台菜单管理中合理添加了路径后,你会发现还是打不开0.0,恩,这就对了。不然怎么说是坑呢。我们找到application/Common/config.php
,打开文件找到MODULE_ALLOW_LIST
配置项,在后面加上'Goods'
,然后打开网页就能看到了。由于建立框架时,前缀为空,所以在使用model时还是会有问题,这时,我们在Model文件中class下加上一句
protected $tableName = "think_goods";
,就能正常使用model了。
最后
祝大家在程序的坑中越陷越深!Happy Work Happy EveryDay!
--------Night ! Madman