使用Yii来建立简单的CMS
此教程描述了使用Yii开发一个演示CMS的过程。此CMS同时可以在Yii发布包里找到。它详细讲解了开发中的每个步骤,这些步骤可能同样适用于其他Web应用的开发。作为对Yii指南和类参考 的补充, 此教程旨在展示Yii的实际使用,而不是详尽具体的使用说明。
读者不需要预先了解关于Yii的知识,但具备基本的面向对象编程(OOP)和数据库编程知识会使读者更容易理解此教程。
更多
通过Yii Framework 基础您应该撑握了Yii的基础搭建,本CMS基于Yii生成的基础框架下进行开发,尽量让刚接触Yii的新手们有系统的熟悉如何基于Yii Framewrok下开发应用,同时本教程之内容是作者在学习过程中积累的心得,请尊重我们的劳动成果,如有任何错误欢迎指正!同时我们由基础开发到简单的性能优化,为你讲解如何让Yii在生产环境中更安全,效率更高!
Yii Framework 是一个高度可扩展的架构,本教程只从最基本的功能实现出发,希望令读者对Yii Framewrok有初步了解,除了能实现搭建起基本架构外,Yii提供的API足已令您实现无限的功能,学习Yii的途径只有一个,多看手册,多查询!
Yii 是什么
Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用。它使Web开发中的 可复用度最大化,可以显著提高你的Web应用开发速度。Yii 这个名字(读作易(Yee) 或 [ji:])代表 简单(easy), 高效(efficient) 和 可扩展(extensible).
环境需求
要运行一个 Yii 驱动的 Web 应用,你需要有一个支持 PHP 5.1.0 或以上版本的 Web 服 务器。
对于打算使用 Yii 的开发者来说,懂得面向对象编程(OOP)会非常有帮助。因为 Yii 是一 个纯 OOP 的框架。
Yii 最适合用来做什么?
Yii 是一个通用的 Web 编程框架,可以用于开发几乎所有的 Web 应用。由于它是轻量级的 且具备了成熟的缓存解决方案,它特别适用于开发高流量的应用,例如门户,论坛,内容管理系 统(CMS),电子商务系统等等。
Yii 跟其他框架比较起来情况如何?
和多数PHP框架类似,Yii 是一个 MVC 框架。
Yii 以其优异的性能,丰富的功能和清晰的文档胜出其他框架。Yii 从一开始就仔细设计以 适合严禁的 Web 应用开发。它既不是一个其他项目的衍生品,也不是一个第三方工作的组合。 它是作者丰富的 Web 应用开发经验和对大多数流行的 Web 编程框架与应用的研究与思考的成果。
安装Yii Framwrok
Yii 的安装由如下两步组成:
- 下载 Yii 框架。
- 将 Yii 压缩包解压至一个 Web 可访问的目录。
提示: 安装在 Web 目录不是必须的,每个 Yii 应用都有一个入口脚本,只有它才必须暴露给 Web 用户。其它 PHP 脚本(包括 Yii)应该保护起来不被 Web 访问,因为它们可能会被黑客利用。
需求
安装完 Yii 以后你也许想验证一下你的服务器是否满足使用 Yii 的要求,只需浏览器中输入如下网址来访问需求检测脚本:
http://hostname/path/to/yii/requirements/index.php
Yii 的最低需求是你的 Web 服务器支持 PHP 5.1.0 或更高版本。Yii 在 Windows 和 Linux 系统上的 Apache HTTP 服务器 中测试通过,应该在其它支持 PHP 5 的 Web 服务器和平台上也工作正常。
建立第一个 Yii 应用
为了对 Yii 有个初步认识,我们在本节讲述如何建立第一个 Yii 应用。我们将使用 yiic (命令行工具)创建一个新的 Yii 应用。Gii(强大的基于web的代码生成器)为特定的任务完成自动代码生成。假定 YiiRoot 为 Yii 的安装目录,WebRoot 是服务器的文档根目录。
在命令行运行 yiic,如下所示:
注意:在 MacOS、Linux 或 Unix 系统中运行 yiic 时,你可能需要修改 yiic 文件的权限使它能够运行。此外,也可以这样运行此工具:
% cd WebRoot % php YiiRoot/framework/yiic.php webapp testdrive
这将在 WebRoot/testdrive 目录下建立一个最基本的 Yii 应用。这个应用拥有了大多数 Yii 应用所需要的目录结构。
不用写一行代码,我们可以在浏览器中访问如下 URL 来看看我们第一个 Yii 应用:
http://hostname/testdrive/index.php
正如我们看到的,这个应用包含三个页面:首页、联系页、登录页。首页展示一些关于应用和用户登录状态的信息,联系页显示一个联系表单以便用户填写并提交他们的咨询,登录页允许用户先通过认证然后访问已授权的内容。 查看下列截图了解更多:
首页
联系页
输入错误的联系页
提交成功的联系页
登录页
下面的树图描述了我们这个应用的目录结构。请查看约定以获取该结构的详细解释。
testdrive/ index.php Web 应用入口脚本文件 index-test.php 功能测试使用的入口脚本文件 assets/ 包含公开的资源文件 css/ 包含 CSS 文件 images/ 包含图片文件 themes/ 包含应用主题 protected/ 包含受保护的应用文件 yiic yiic 命令行脚本 yiic.bat Windows 下的 yiic 命令行脚本 yiic.php yiic 命令行 PHP 脚本 commands/ 包含自定义的 'yiic' 命令 shell/ 包含自定义的 'yiic shell' 命令 components/ 包含可重用的用户组件 Controller.php 所有控制器类的基础类 Identity.php 用来认证的 'Identity' 类 config/ 包含配置文件 console.php 控制台应用配置 main.php Web 应用配置 test.php 功能测试使用的配置 controllers/ 包含控制器的类文件 SiteController.php 默认控制器的类文件 data/ 包含示例数据库 schema.mysql.sql 示例 MySQL 数据库 schema.sqlite.sql 示例 SQLite 数据库 testdrive.db 示例 SQLite 数据库文件 extensions/ 包含第三方扩展 messages/ 包含翻译过的消息 models/ 包含模型的类文件 LoginForm.php 'login' 动作的表单模型 ContactForm.php 'contact' 动作的表单模型 runtime/ 包含临时生成的文件 tests/ 包含测试脚本 views/ 包含控制器的视图和布局文件 layouts/ 包含布局视图文件 main.php 所有视图的默认布局 column1.php 使用单列页面使用的布局 column2.php 使用双列的页面使用的布局 site/ 包含 'site' 控制器的视图文件 pages/ 包含 "静态" 页面 about.php "about" 页面的视图 contact.php 'contact' 动作的视图 error.php 'error' 动作的视图(显示外部错误) index.php 'index' 动作的视图 login.php 'login' 动作的视图 system/ 包含系统视图文件
连接到数据库
大多数 Web 应用由数据库驱动,我们的测试应用也不例外。要使用数据库,我们首先需要告诉应用如何连接它。修改应用的配置文件 WebRoot/testdrive/protected/config/main.php 即可,如下所示:
return array( ...... 'components'=>array( ...... 'db'=>array( 'connectionString'=>'sqlite:protected/data/source.db', ), ), ...... );
提示:上面的代码告诉 Yii 应用在需要时将连接到 SQLite 数据库 WebRoot/testdrive/protected/data/testdrive.db 。注意这个SQLite 数据库已经包含在我们创建的应用框架中。数据库只包含一个名为 tbl_user 的表:
CREATE TABLE tbl_user ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL );
若你想要换成一个 MySQL 数据库,你需要导入文件 WebRoot/testdrive/protected/data/schema.mysql.sql 来建立数据库。
注意:要使用 Yii 的数据库功能,我们需要启用 PHP 的 PDO 扩展和相应的驱动扩展。对于测试应用来说,我们需要启用 php_pdo 和 php_pdo_sqlite 扩展。
实现 CRUD 操作
激动人心的时刻来了。我们想要为刚才建立的 tbl_user 表实现 CRUD (create, read, update 和 delete) 操作,这也是实际应用中最常见的操作。我们无需麻烦地编写实际代码,这里我们将使用 Gii —— 一个强大的基于Web 的代码生成器。
信息:Gii 自版本 1.1.2 可用。在此之前,可以使用 yiic 来实现相同的功能。更多细节,请参考 用 yiic shell实现 CRUD 操作。
配置Gii
为了使用 Gii,首先需要编辑文件 WebRoot/testdrive/protected/main.php,这是已知的 应用配置 文件:
return array( ...... 'import'=>array( 'application.models.*', 'application.components.*', ), 'modules'=>array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'pick up a password here', ), ), );
然后,访问 URL http://hostname/testdrive/index.php?r=gii。这里我们需要输入密码,它是在我们在上面的配置中指定的。
生成 User 模型
登陆后,点击链接 Model Generator。它将显示下面的模型生成页面,
CRUD Generator
在 Model Class 输入框中,输入 User。在 Controller ID 输入框中,输入 user (小写格式)。现在点击 Generate 按钮后的 Preview 按钮。CRUD 代码生成完成了。
在 Table Name 输入框中,输入 tbl_user。在 Model Class 输入框中,输入 User。然后点击 Preview 按钮。这里将展示将要生成的新文件。现在点击 Generate 按钮。一个名为 User.php 将生成到 protected/models 目录中。如我们稍后描述的, User 模型类允许我们以面向对象的方式来访问数据表 tbl_user 。
生成 CRUD 代码
在创建模型类之后,我们将生成执行 CRUD 操作的代码。我们选择 Gii 中的 Crud Generator,如下所示,
CRUD Generator
在 Model Class 输入框中,输入 User。在 Controller ID 输入框中,输入 user (小写格式)。现在点击 Generate 按钮后的 Preview 按钮。CRUD 代码生成完成了。
访问 CRUD 页面
让我们看看成果,访问如下 URL:
http://hostname/testdrive/index.php?r=user
这会显示一个 tbl_user 表中记录的列表。
点击页面上的 Create User 链接,如果没有登录的话我们将被带到登录页。登录后,我们看到一个可供我们添加新用户的表单。完成表单并点击 Create 按钮,如果有任何输入错误的话,一个友好的错误提示将会显示并阻止我们保存。回到用户列表页,我们应该能看到刚才添加的用户显示在列表中。 重复上述步骤以添加更多用户。注意,如果一页显示的用户条目太多,列表页会自动分页。
如果我们使用 admin/admin 作为管理员登录,我们可以在如下 URL 查看用户管理页:
http://hostname/testdrive/index.php?r=user/admin
这会显示一个包含用户条目的漂亮表格。我们可以点击表头的单元格来对相应的列进行排序,而且它和列表页一样会自动分页。
实现所有这些功能不要我们编写一行代码!
用户管理页
新增用户页
相关推荐
Yii PHP Framework实用入门教程
### Yii框架快速入门详解 #### 一、Yii框架概述 **Yii**,发音近似英文“Yee”或中文的“易”,是一个高效、组件化、面向大型Web应用的PHP开发框架。它由Martin Atsma于2008年发起,旨在提供一个灵活、高效且易于...
### Yii快速入门教程知识点 #### 一、基本概念 **1. 入口文件** - **功能**: 入口文件是整个Yii应用的第一个脚本,它负责加载Yii框架以及初始化应用。 - **内容**: 通常包含如下代码: ```php $yii = dirname...
Yii框架提供了一个yiic工具来帮助开发者快速生成应用。使用yiic工具,开发者能够在不需要编写任何代码的情况下创建一个具有基本功能和目录结构的Yii应用。在创建应用后,开发者可以直接在浏览器中访问特定URL来查看...
### YII快速入门教程知识点详解 #### 一、基本概念 **1. 入口文件** - **定义**: 入口文件是启动Yii框架的第一个PHP文件。它负责加载Yii框架的核心文件并设置运行环境。 - **作用**: 初始化环境变量、加载配置...
Yii 2 comes in two flavors, basic and advanced, and it might seem counterintuitive to use the advanced template in a beginner’s book, but ironically, the advanced template is easier to use if your ...
`yiisoft/yii/framework`是核心框架目录,包含基础类和核心组件,如CApplication、CController、CModel等。其他如` yiisoft/yii/framework/web`针对Web应用的组件,`yiisoft/yii/framework/db`用于数据库操作。 2. ...
- **下载Yii框架**:从官网`www.yiiframework.com`下载最新版本的Yii框架。 - **解压并安装**:将下载好的Yii框架解压至服务器的根目录`/wwwroot/yii`。确保`/wwwroot/yii/framework`目录的存在。 - **环境检查**:...
你可以从指定的地址`http://www.yiiframework.com/extension/phpexcel`获取它。下载完成后,将解压的PHPExcel文件夹放置在Yii框架的`framework/vendors`目录下。这样,Yii就能识别并使用这个第三方组件。 在Yii中...
- **Yii vs CakePHP vs Zend Framework vs ThinkPHP vs Symfony**:尽管这些框架各有特色,但Yii以其轻量级、高性能以及社区支持等特点,在很多方面表现突出,尤其是在快速开发和部署方面。 #### 三、Yii框架的发展...
Yii 框架的核心部分位于 framework 文件夹内,其中包含 yiic.bat 文件,这是一个用于快速生成应用程序结构和 MVC 组件的命令行工具。 为了创建一个新的 Web 应用,你可以通过命令行运行 yiic 命令。首先,确保你在 ...
**解释**: 本指南旨在帮助初学者快速掌握Yii框架的基础知识与应用技巧,特别适合于没有或仅有少量Yii经验的学习者。通过详细的步骤介绍以及实际案例分析,即便是初次接触Yii框架的用户也能轻松上手。 #### 二、基础...
本文讲述了Yii快速入门教程。分享给大家供大家参考,具体如下: Ⅰ、基本概念 一、入口文件 入口文件内容:一般格式如下: <?php $yii=dirname(__FILE__).'/../../framework/yii.php';//Yii框架位置 $config=...
如果你对YII框架或其他PHP相关技术有进一步的兴趣和需求,可以参考本站提供的其他专题文章,如《Yii框架入门及常用技巧总结》、《PHP优秀开发框架总结》等,这些资料能够为你提供更多的信息和帮助。
- 从官网`yiiframework.com`下载Yii2.0的归档文件。 2. **解压缩**: - 将下载的文件解压缩到Web服务器的文档根目录下。 3. **配置`cookieValidationKey`**: - 修改`config/web.php`文件中的`...