- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
资料
应用Yii和PHP5进行web的敏捷开发
第十二章:迭代9:添加管理模块
到目前为止,我们已经给TrackStar应用程序增加了很多功能。如果你还记得在第8章,我们介绍了使用基于用户角色的层次结构来限制用户访问某些功能。这有助于限制对一些单一项目的管理职能的访问。例如:在一个特定的项目中,你可能不希望让所有的成员都有删除权限。我们为用户分配到一个项目内的特殊角色来实现基于角色的访问控制,然后控制这些角色是否有访问该功能的权限。
然而,我们尚未解决的是整个应用程序的管理需求。例如TrackStar Web应用程序经常需要的有一个非常特殊的用户拥有所有的管理权限。其中一个例子就是让系统的每一个用户拥有CURD操作,而不仅仅是项目。我们应用程序的系统管理员应该有以下权限:能够登录,删除或者修改用户、项目、问题,管理所有的评论,等等。同时,我们经常建立适用于整个应用程序的额外功能,如能给所有用户发布站点系统信息,管理电子邮件运动,打开/关闭某些应用功能,管理角色的层次,改变站点主题,等等。因为管理员的权限与用户的权限有极大的不同,把这些功能和应用程序分离是一个好想法。我们将通过Yii模块建立所有的管理功能来完成这个分离。
12.1 迭代计划
在这个迭代中,我们将集中完成以下开发任务:
? 创造一个新的模块来存放管理功能
? 为系统管理员建立系统广播功能,用户可以在项目列表页面查看
? 为应用模块添加一个新课题
? 创建一个新表保持系统消息数据
? 为系统信息生成所有的CURD操作
? 只允许管理用户使用新模块中的功能
? 在项目列表页面显示新系统信息
12.2 模块
模块类似于一个大型应用程序中的小型应用程序。它有与应用程序类似的结构,包含模型、视图、控制器及其他支持组件。然而,模块不能作为独立的应用程序,它们必须嵌入某一个应用程序。
Modules在帮助你的应用程序模块化架构方面很有用。大型的应用程序经常可以分成几个离散的应用程序,这些离散的应用程序也可以用模块来构建。站点功能,如添加一个用户论坛,用户博客或站点管理员功能都是一些例子,说明从主站点功能分离出来的功能,可以让它们单独开发,并且容易在未来的计划中重用。我们将在应用程序中不同的位置建立存放管理功能的模块。
12.3 创建一个模块
使用我们的老朋友,Gii代码生成工具创建一个新模块是很容易的。伴随着我们的URL的改变,要通过http://localhost/ trackstar / gii来访问该工具。打开后,在左边的菜单中选择Module Generator选项。你将看到下面的画面:
我们需要给模块取一个唯一的名字。由于我们正在创建一个管理模块,我们可以命名为admin。在Module ID内输入admin,点击Preview按钮。如下图所示,它会向你展示它将会生成的所有文件,让你在创建之前预览这些文件:
然后点击Generate按钮来生成这些文件。由于web服务器进程它自动创建文件夹和文件的要求,所以要确保你的/protected文件夹是可写入的。下面的截图显示一个成功的模块生成:
让我们更进一步的看看这个自动生成的模板。Yii中模块是以一个文件夹组织的,文件夹的名字就是该模块的名字。默认情况下,居所有的模块保存在/protected/modules目录下。每个模块文件夹的结构都与主应用程序非常相似。这个指令为我们所做的是创建admin模块建立脚手架文件夹结构。因为这是我们的第一个模块,顶层的文件夹/protected/modules被创建了,然后将admin文件夹放在里面。下面为我们展示了模块命令行为我们建立的所有文件夹和文件:
一个模块必须拥有一个模块继承自CWebModule或其子类。该模块类的名字由模块ID (在这里指admin) 和字符串Module联合生成。模块ID的第一个字母大写。所以,在我们的例子中,我们的admin模块类文件被命名AdminModule.php。模块类主要作为存储模块代码共享信息的中转站。例如,我们可以用CWebModule的params属性来存储模块性能的具体参数,并利用其components属性在模块级分享应用程序的组件。这个模块类在模块中的作用类似于应用程序类对整个应用程序的作用。所以CWebModule是对模块的就像CWebApplication是对应用程序的。
12.4 使用一个模块
正如成功建立的信息表明,在我们使用新模块之前,我们需要在主应用程序中设置modules属性,才可以使用它。在添加gii模块应用程序之前,允许我们使用gii代码生成工具。我们对主要配置文件protected/config/ main.php 进行改变。以下代码显示了所需的改变:
PHP代码:
modules=array(
g
您可能关注的文档
- 20130904计算机在材料科学中的应用实验上机教案.doc
- 2014年4月中国医科大学《计算机基础应用》在线作业答案.doc
- 矿井水预处理技术研究报告.doc
- 山寨行为对企业经营的影响.doc
- 赛高节能空调更换碳氢制冷剂节能解决方案.doc
- 2014--2016二建《施工管理》真题及答案.doc
- 屠宰污水的厌氧消化工艺研究.doc
- 2013年9月份考试数字电子技术第三次作业.doc
- ZZ型行星齿轮减速机.doc
- 储配方案设计优化—最终方案.doc
- 2026年石家庄经济职业学院单招《数学》考试综合练习含完整答案详解(夺冠系列).docx
- 2026年石家庄理工职业学院单招《数学》过关检测试卷附答案详解【突破训练】.docx
- 2026年石家庄工程职业学院单招《数学》通关题库含完整答案详解【典优】.docx
- 2026年石家庄财经职业学院单招《数学》自我提分评估及参考答案详解【研优卷】.docx
- 呼吸内科治疗策略优化总结.pptx
- 2026年石家庄工商职业学院单招《数学》测试卷完美版附答案详解.docx
- 2026年石家庄经济职业学院单招《数学》模考模拟试题含完整答案详解【夺冠】.docx
- 双胍衍生物_原创精品文档.pptx
- 2026年石家庄医学高等专科学校单招《数学》练习题含答案详解(考试直接用).docx
- 2026年石家庄工程职业学院单招《数学》考试彩蛋押题【满分必刷】附答案详解.docx
最近下载
- 成人住院患者静脉血栓栓塞症的预防护理-中华护理学会团体标准2023.pptx VIP
- 铁道概论复习知识点总结.docx VIP
- KXH36矿用隔爆兼本质安全型语言声光信号器操作手册.pdf VIP
- 3--kxh127矿用隔爆兼本安型多功能通讯信号装置(说明书).doc VIP
- 新能源汽车概论-全套PPT课件.pptx VIP
- 桥梁上部施工技术全套配套课件满洪高ppt1概述+2拱桥构造.ppt VIP
- 鄂东气田石楼西区块永和 30 井区致密气开采矿山地质环境保护与土地复垦方案.pdf VIP
- 新时达AS380电气原理图随机图纸RH0000739;22版型规;非18芯;V1.0.pdf
- NQMS及其数字化运营(简V5.0).pptx VIP
- 成都诗丽堂公司采购部工作指导书.doc VIP
原创力文档


文档评论(0)