应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块

应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块

ID:11219812

大小:1.00 MB

页数:19页

时间:2018-07-10

应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块_第1页
应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块_第2页
应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块_第3页
应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块_第4页
应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块_第5页
资源描述:

《应用yii1.1和php5进行敏捷web开发_第十二章:迭代9:添加管理模块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十二章:迭代9:添加管理模块目前为止我们已经为TrackStar应用程序添加了很多功能。回想一下第八章,我们介绍了如何使用用户的角色等级体系来限制用户访问一些功能。这很好的帮助我们限制了对一些基于单一项目的管理功能的访问。例如,在某个项目中,你并不想每一个人都拥有删除权限。我们为用户添加基于某一项目的特殊角色来实现基于角色的用户控制,然后控制该角色是否拥有访问该功能的权限。然而,到现在为止我们还没有提到的是整个应用程序的管理需求。类似TrackStar的web应用程序需要针对某一用户设置拥有所有管理权限(的超级管理员)。一个显著的例子就是,对系统的每一个用户拥有CRU

2、D操作,而不仅仅是某个project(项目)。当前应用程序中的系统管理员(同超级管理员)应当拥有如下权限:可以登录,删除或者修改用户、project(项目),issue,管理所有评论,等等。同时,也包括一些我们添加的额外功能,例如,给所有用户发布站点公告信息,管理E-mailcampaigns,打开/关闭当前应用程序功能,管理角色等级体系,更换站点主题,等等。因为管理员权限和用户权限的巨大不同,将该本次迭代的功能和应用程序分离是一个好想法。我们将通过在Yii的模块里完成这一功能来实现分离。迭代计划在本次迭代中,我们将会集中完成如下开发任务:§建立一个新模块来存放管理功能

3、§为管理员建立系统广播的能力,用户将在项目列表页看到该消息§为模块添加新主题§为系统消息建立新的数据库表§为系统消息生成所有的CRUD操作§只允许管理员用户访问新模块中的功能§在项目列表页显示新系统消息模块模块是一个大型应用程序中的小型应用程序。模块拥有与应用程序相似的结构,包含模型,试图,控制器,和其他支持组件。但是,模块不可以单独作为一个应用程序出现,必须嵌入某一应用程序。模块可以帮助你模块化实现你的应用程序。大型应用程序常划分为离散的应用程序来实现功能,这里离散的应用程序可以通过模块实现。站点功能类似添加用户论坛,用户博客,或者站点管理功能都是一些例子,可以从主功

4、能上剥离,使得可以分离开发,并且可以很容易的在以后的项目中重用。我们将在项目的不同目录建立存放管理功能的模块。建立一个模块使用我们的老朋友Gii代码生成工具建立一个新模块是非常容易的。伴随着我们的URL的改变,应该通过http://localhost/trackstar/gii访问该工具。打开以后选择,左边菜单的ModuleGenerator选项。你将会看到下面的画面:我们需要给该模块取一个唯一的名字。因为我们在创建一个管理模块,我们可以命名为admin。所以在ModuleID内填入admin,然后点击Preview按钮。如下图所示,它向你展示了所有将会被生成的文件,允

5、许你在新建之前预览他们:然后点击Generate按钮,来生成所有文件。因为Web服务器进程需要写入权限,所以确保你的/protected文件夹对于该应用程序是可写入的。模块添加成功后,会看到下图的界面:让我们仔细观察一下自动生成的模块。一个模块在Yii中是以一个文件夹来组织的,该文件夹的名字就是模块的名字。默认的,所有模块都存放在protected/modules目录下。每一个模块的结构都和我们的主应用程序很相似。命令行会为admin模块建立脚手架文件夹结构。因为这是我们第一个模块,顶级文件夹/protected/modules被建立了,所以admin文件夹被放置在里面

6、。下面为我们展示了模块命令行为我们建立的所有文件夹和文件:一个模块中必须有模块类继承自CWebModule或它的子类。该模块类的名字由模块ID(在这里指admin)和字符串Module联合生成。模块ID的首字母会大写。因此,在我们的案例中,我们的admin模块类文件被命名为AdminModule.php。模块类扮演了存储来自模块代码共享信息的中转地带。例如,我们可以使用CWebModule的params属性来存储模块的特定参数,使用components属性在模块级分享应用程序组件。该类在模块中的作用类似应用程序中的类对整个应用程序的作用。因此,CWebModule是对模

7、块来说的,CWebApplication是对整个应用程序来说的。使用一个模块在看到建立成功的消息后,我们需要在应用程序中设置modules属性,才可以使用它。在添加gii模块到应用程序的时候,我们使用过该方法来允许我们使用Gii代码生成工具。我们对主配置文件:protected/config/main.php进行配置,如下的高亮代码需要被修改:PHP代码:'modules'=>array('gii'=>array('class'=>'system.gii.GiiModule','password'=>'iamadmin',),'admin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。