零、序言
这本书是使用 YiIWeb 应用程序开发框架开发实际应用程序的分步教程。本书试图反映负责构建在线应用程序的软件开发团队的环境,在构建项目任务管理应用程序(从概念到生产部署)时,涉及软件开发生命周期的各个方面。
在对 Yii 框架进行了简短的一般性介绍之后,通过标志性的“Hello World”示例,剩下的章节将按照软件开发迭代在实际项目中的方式进行分解。我们首先创建一个工作应用程序,该应用程序具有有效的、经过测试的数据库连接。
然后我们继续定义我们的主要数据库实体和域对象模型,并熟悉 Yii 的对象关系映射(ORM)层活动记录。我们将学习如何依靠 Yii 的代码生成工具,根据新创建的模型自动构建创建/读取/更新/删除(CRUD)功能。我们还关注 Yii 的表单验证和提交模型是如何工作的。在第 5 章管理问题结束时,您将拥有一个工作应用程序,允许您管理这些项目中的项目和问题(任务)。
然后我们转到用户管理的主题。我们将了解 Yii 中的内置身份验证模型,以帮助实现应用程序登录和注销功能。我们深入研究了授权模型,首先利用 Yii 简单的访问控制模型,然后实现 Yii 提供的更复杂的基于角色的访问控制(RBAC)框架。
在第 7 章、用户访问控制的末尾,任务管理应用程序的所有基础都已就绪。接下来的几章将重点介绍其他用户功能、用户体验和设计。我们添加了用户评论功能,在这个过程中引入了可重用的内容 portlet 体系结构方法。我们添加了一个 rsswebfeed,并演示了在 Yii 应用程序中集成其他第三方工具和框架是多么容易。我们利用 Yii 的主题化结构帮助简化和设计应用程序,然后引入 Yii 的国际化(I18N
功能,使应用程序能够适应各种语言和地区,而无需进行工程更改。
在最后一章中,我们将重点放在为生产部署准备应用程序上。我们介绍了优化性能和提高安全性的方法,以便为生产环境准备应用程序。
这本书涵盖的内容
第 1 章、满足 Yii为您提供了 Yii 的简要历史,介绍了模型视图控制器(MVC)应用架构,并向您介绍了典型的请求生命周期,因为它是从最终用户通过应用程序实现的,最后作为对最终用户的回应。
第 2 章入门致力于下载和安装框架,创建新的 Yii 应用程序外壳,并介绍 Yii 强大灵活的代码生成工具 Gii。
第三章TrackStar 应用介绍 TrackStar 应用。这是一个在线、项目管理和问题跟踪应用程序,您将在其余章节中构建该应用程序。在这里,您将学习如何将 Yii 应用程序连接到基础数据库。您还将学习如何从命令行运行交互式 shell。本章的最后一部分重点介绍了 Yii 应用程序中的单元测试和功能测试,并提供了一个用 Yii 编写单元测试的具体示例。
第 4 章项目 CRUD帮助您开始与数据库交互,开始向数据库驱动的 Yii 应用程序 TrackStar 添加功能。您将学习如何使用 Yii 迁移进行数据库更改管理,我们将使用 Gii 工具创建模型类,并使用模型类构建创建、读取、更新和删除(CRUD)功能。本章还将向读者介绍如何配置和执行表单字段验证。
第 5 章管理问题解释了如何将其他相关数据库表添加到 TrackStar 应用程序中,以及如何向读者介绍 Yii 中的关系活动记录。本章还介绍如何使用控制器过滤器进入应用程序生命周期,以便提供操作前和操作后处理。引入了官方的 Yii 扩展库 Zii,我们使用 Zii 小部件来增强 TrackStar 应用程序。
第 6 章用户管理和认证介绍了如何在 Yii 中认证用户。在 TrackStar 应用程序中添加管理用户的功能的同时,读者学习利用 Yii 中的行为,这为跨 Yii 组件共享通用代码和功能提供了极其灵活的方法。本章还详细介绍了 Yii 认证模型。
第 7 章用户访问控制专门介绍 Yii 的授权模型。首先,我们介绍简单的访问控制功能,它允许您轻松地为基于多个参数的控制器操作配置访问规则。然后,我们看一看基于角色的访问控制(RBAC)是如何在 Yii 中实现的,它允许基于角色、操作和任务的层次模型的完整访问控制的更健壮的授权模型。在 TrackStar 应用程序中实现基于角色的访问控制,还向读者介绍了如何在 Yii 中使用 console 命令。
第 8 章添加用户评论帮助演示如何实现允许用户在 TrackStar 应用程序中对项目和问题发表评论的功能;我们将介绍如何配置和使用统计查询关系,如何创建称为小部件的高度可重用用户界面组件,以及如何在 Yii 中定义和使用命名范围。
第 9 章添加了 RSS Web 订阅,演示了在 Yii 应用程序中使用其他第三方框架和库是多么容易,并向您展示了如何使用 Yii 的 URL 管理功能来定制应用程序的 URL 格式和结构。
第 10 章让它看起来更好看,帮助您了解更多关于 Yii 中的视图,以及如何使用布局来管理应用程序页面中共享的标记和内容。还介绍了主题化,因为我们展示了在不改变任何基础工程的情况下,为 Yii 应用程序提供全新外观是多么容易。随着语言翻译被添加到我们的 TrackStar 应用程序中,我们接着看一下 Yii 中的国际化(i18n
和本地化(l10n
)。
第 11 章使用 Yii 模块解释了如何使用 Yii 模块向 TrackStar 站点添加管理功能。模块提供了一种非常灵活的方法来开发和管理应用程序中较大的、自包含的部分。
第 12 章、生产准备帮助我们为生产准备 TrackStar 应用程序。您将了解 Yii 的日志框架、缓存技术和错误处理方法,以帮助您的 Yii 应用程序做好生产准备。
这本书你需要什么
本书需要以下软件:
- Yii 框架版本 1.1.12
- PHP 5.1 或以上版本(建议使用 5.3 或 5.4)
- MySQL 5.1 或以上版本
- 能够运行 PHP5.1 的 web 服务器;本书中提供的示例是使用 ApacheHTTP 服务器构建和测试的,Yii 已经在 Windows 和 Linux 环境中进行了全面测试
- Zend Framework 版本 1.1.12 或更高版本(仅用于第 9 章、添加 RSS Web 订阅以及本库的下载和配置,本章介绍)
这本书是给谁的
如果您是一名 PHP 程序员,具有面向对象编程的知识,并且希望快速开发现代、复杂的 web 应用程序,那么本书适合您。阅读本书不需要具备 Yii 的先验知识。
公约
在这本书中,你会发现许多不同类型的文本可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。
文本中的代码词如下所示:“我们可以通过使用include
指令包含其他上下文。”
代码块设置如下:
'components'=>array(
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=trackstar',
'emulatePrepare' => true,
'username' => '[YOUR-USERNAME]',
'password' => '[YOUR-PASSWORD]',
'charset' => 'utf8',
),
),
当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
'components'=>array(
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=trackstar',
'emulatePrepare' => true,
'username' => '[YOUR-USERNAME]',
'password' => '[YOUR-PASSWORD]',
'charset' => 'utf8',
),
),
任何命令行输入或输出的编写方式如下:
$ yiic migrate create <name>
%cd /WebRoot/trackstar/protected/tests
新术语和重要词语以粗体显示。例如,您在屏幕上、菜单或对话框中看到的文字出现在文本中,如下所示:“单击下一步按钮将移动到下一屏幕”。
注
警告或重要注释显示在这样的框中。
提示
提示和技巧如下所示。
读者反馈
我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢或可能不喜欢什么。读者反馈对于我们开发您真正从中获益最多的标题非常重要。
要向我们发送一般反馈,只需向<[feedback@packtpub.com](mailto:feedback@packtpub.com)>
发送电子邮件,并通过邮件主题提及书名即可。
如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南,网址为www.packtpub.com/authors。
客户支持
既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。
下载示例代码
您可以下载您在账户购买的所有 Packt 书籍的示例代码文件 http://www.PacktPub.com 。如果您在其他地方购买了本书,您可以访问http://www.PacktPub.com/support 并注册,将文件直接通过电子邮件发送给您。
勘误表
虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/support ,选择您的书籍,点击勘误表提交表单链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站上,或添加到该标题勘误表部分的任何现有勘误表列表中。通过从中选择您的标题,可以查看任何现有勘误表 http://www.packtpub.com/support 。
盗版
在互联网上盗版版权材料是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现我们作品的任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。
请致电<[copyright@packtpub.com](mailto:copyright@packtpub.com)>
与我们联系,并提供可疑盗版材料的链接。
我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。
问题
如果您对本书的任何方面有疑问,请致电<[questions@packtpub.com](mailto:questions@packtpub.com)>
与我们联系,我们将尽力解决。
版权属于:月萌API www.moonapi.com,转载请注明出处