应用Yii和PHP5进行web的敏捷开发翻译.doc

应用Yii和PHP5进行web的敏捷开发翻译.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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

文档评论(0)

hkfgmny + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档