Yii Framework 基础,快速入门

网友投稿 306 2022-09-17

Yii Framework 基础,快速入门

使用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 的要求,只需浏览器中输入如下网址来访问需求检测脚本:

​​的最低需求是你的 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 应用:

​​查看下列截图了解更多:

首页

联系页

输入错误的联系页

提交成功的联系页

登录页

下面的树图描述了我们这个应用的目录结构。请查看约定以获取该结构的详细解释。

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 User 模型

CRUD Generator

生成 CRUD 代码

在创建模型类之后,我们将生成执行 CRUD 操作的代码。我们选择 Gii 中的 Crud Generator,如下所示,

CRUD Generator

访问 CRUD 页面

让我们看看成果,访问如下 URL:

tbl_user 表中记录的列表。

如果我们使用 admin/admin 作为管理员登录,我们可以在如下 URL 查看用户管理页:

http://hostname/testdrive/index.php?r=user/admin

实现所有这些功能不要我们编写一行代码!

用户管理页

新增用户页

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:yii2 beforeSave afterSave beforeDelete
下一篇:猿大侠:小米这个神级APP彻底凉了!网友: 10年前曾领先微信……
相关文章

 发表评论

暂时没有评论,来抢沙发吧~