1.【强制】模块开发时,与当前模块相关的所有文件必须放到当前模块目录下面,禁止将文件放到模块目录外层目录的任何地方。 2.【强制】模块controllers目录下面放置该模块的控制器或外部接口,install目录里面的内容为模块安装程序,uninstall目录里面的内容为模块卸载程序,templates目录里面的内容为该模块的模板文件,model目录里面存放该模块的数据模型类,classes目录里面存放该模块的其它自定义类,functions目录里面存放该模块的一些自定义函数。 3.【强制】进行新模块开发时,请同时提供完整的模块安装与卸载程序。模块安装程序进行模块安装的时候需要安装权限菜单及数据表,模块卸载程序进行模块卸载的时候需要删除与该模块相关的所有表,实现模块卸载不留痕迹。 4.【强制】模块开发时有时候会与其他模块相关联,这个时候有可能会加载其它模块中的一些类,如此一来,如果其它模块被卸载了,那么这个模块也不能正常运行。所以在模块开发过程中,尽量不要加载那些有可能会被卸载的模块中的类,当然有些模块是永远不会被卸载的,加载它里面的类是没有问题的,如admin模块。 5.【强制】数据表必须使用mix_模块名_XXX格式进行命名。 6.【强制】控制器的名称选用与功能意义相关的英文单词来命名,默认方法请使用init,一个控制器里面可能会同时存在多个方法,不同的方法加载模板文件时请使用”控制器名_方法名.tpl.php”,如控制器为search,那么init方法调用的模板名称就应该命名为search_init.tpl.php,add方法调用的模板名称就应该命名为search_add.tpl.php。这样一来,我们光看模板文件名称,我们就知道该模板文件是被哪个控制器调用的,是该控制中的哪个方法实现的,templates目录下面不允许再建立子目录。 7.【强制】在开发接口时,有些接口是在后台运行的,这个时候接口运行时不需要登陆也不需要验证权限,所以接口开发时不要继承admin类,接口一律命名为api.php。 8.【强制】有些模块是永远对所有用户开放的,但又必须是用户登陆系统后才能被访问,这个时候控制器需要继承admin类,确保用户已处于在线状态,方法名必须以public_开头,跳过权限验证机制。 9.【强制】所有控制器都要继承admin类,并自动调用父类的构造方法,防止权限无法控制。 10.【强制】在定义ajax访问的方法或其他无须权限认证的方法时请使用public_xxx命名,避免权限控制。 11.【强制】框架引入了ExtJS作为UI,该UI具备WEB开发的所有组件,开发时不得再使用第三方插件。 12.【强制】常驻进程全部使用数据驱动里面的脚本来进行管理。