以模块的形式运行的CodeIgniter3.1.6, 会擦出怎样的火花呢??

平时在日常工作的中, 经常用CI框架进行网站开发的工作,大多是企业站, 由于每次开发, 都会做一些繁琐,重复的工作, 比如每个站点都有轮播图,新闻,视频,关于我们,友情链接等, 全是重复而且没有特别大的区别的工作。所以就想到了把这些功能全部都基于模块的形式,每个功能之间都是单独分开的, 互不影响。只要把模块拷贝到目标项目,不费任何工夫,就能正常运行了, 这要即省了很多工作, 也避免了每次开发完成后, 还要进行测试过程。如果以模块的形式的话, 只要确保此模块没有问题, 无论这个模块放到哪, 都不会有问题,最多也只是简单的加减字段而已。 而且我想到的最大的好处就是, 经过不断的积累,可以增加到很多模块, 这样, 如果做一个网站的话,基本不用写什么代码啦!!(我不小心淫荡的笑了^^)

当然, 在写这个功能的时候, 不免对CI框架的核心代码(CodeIgniter.php)做了小小的修改, 再加上日积月累,最终还是小有成就滴。 既然好不容易小有成就, 下面来看看框架的特色吧(只有后台的功能哦, 还没有对前台进行开发呢):

1、最大的特色, 基于模块, 一切皆模块(感觉有点废话的意思^^), 每个模块有自己的model,views,validation,helper,libraries,language。这得意于,
自动加载的MY_loader.php,对模型,视图,表单验证,帮助函数, 类库, 语言名的路径进行了重写。

2、有完整的RBAC(基于角色的权限访问控制)功能,

3、框架本身的控制器的逻辑不被影响,如果在application/controller下创建一个控制器, 可以正常访问, 无任何影响。

4、既然基于模块,每次创建一个模块的时候会不会很复杂呢?这个不用担心,因为根目录下有一个init_module.php,运行这个文件是初始化一个模块的,
 只要运行【php init_module.php 模块名】即可初始化, 模块所需要的必要文件, 都会生成(后台控制器,前台控制器,模板目录)。
初始化模块的时候, 要有一个注意事项:前后台的主控制器, 会有一个tb的属性,默认绑定的是模块的名称,当然了, 这个属性是自由改动的。

5、默认加入, 新闻,轮播图, 管理员管理,权限管理,角色管理等一些模块

6、语言包开关,开启后, 会自动加载当前模块下面的语言包,前提是文件存在的情况下。例模块名称叫:Adminuser,语言包位于Adminuser/language/zh-cn/adminuser_lang.php

7、自动加载主模块对应的模型,前提是文件存在的情况下。例模块名叫:Banner,模型位于Banner/models/Banner_model.php

8、加入RSA加密解密的功能,在某些Ajax提交,或是表单POST提交的时候, 一些敏感的信息进行加密,增加了安全性。

9、 添加,更新时,表单验证, 只要进行简单的配置, 就能自动验证。验证 文件位于Banner/validation/validation.php,在文件内定义验证选项。
     分前后台验证,  后台下标为: 【manager】,前台下标为【front】

 

注:本系统在【阿里云】服务器上正常运行,PHP版本7.1.7

角色权限的分配:

新闻内容添加:

设置项添加:可以自定KEY, 添加的内容可以出现在网站的任何地方

 

添加新闻时, 必填字段为空时的提示:

系统操作日志:

News模块结构:

验证配置文件内容:

 

线上演示:http://cimodule.zlong.xin/Manager/Admin, 用户名:ceshi  密码:123123

应用案列:

http://mthanks.fang8000.com/Mthanks,(请在微信下面打开)

http://mthanks.fang8000.com/OneDayFarmer

 

这个项目是近期公司的一个活动页面, 主要功能是获取微信用户信息, 提交表单和后台查看申请列表的功能。虽说没有什么大功能,但自己写的一个基于模块的系统, 怎么也得拿出来试试水, 于是就用了这个系统。最终的效果还是比较满意滴^^

 

 

0

发表评论

电子邮件地址不会被公开。