首页 > 后端开发 > php教程 > PHP主|在几分钟内用yii构建一个CRUD应用程序

PHP主|在几分钟内用yii构建一个CRUD应用程序

Lisa Kudrow
发布: 2025-02-23 08:57:10
原创
555 人浏览过

Yii框架:快速构建高效CRUD应用的指南

Yii是一个高性能的PHP框架,以其速度、安全性以及对Web 2.0应用的良好支持而闻名。它遵循“约定优于配置”的原则,这意味着只要遵循其规范,就能编写比其他框架少得多的代码(更少的代码意味着更少的bug)。此外,Yii还提供了许多开箱即用的便捷功能,例如脚手架、数据访问对象、主题、访问控制、缓存等等。本文将介绍使用Yii创建CRUD系统的基础知识。

关键要点

  • Yii是一个高性能框架,适用于Web 2.0应用,提供许多便捷功能,例如脚手架、数据访问对象、主题、访问控制和缓存。它遵循约定优于配置的原则,减少代码量,从而降低bug的可能性。
  • Yii的命令行工具yiic用于创建具有合适目录结构的骨架应用。Yii遵循MVC和OOP原则,URL结构为http://localhost/yiitest/index.php?r=controllerID/actionID。控制器和要调用的方法是根据URL中的ID确定的。
  • Yii的基于Web的工具gii可用于生成模型、控制器和表单,用于CRUD操作,从而快速开发CRUD系统。例如,用户可以对博客文章执行CRUD操作的简单系统可以在几分钟内开发完成。

入门

假设您已经在系统上安装了Apache、PHP(5.1或更高版本)和MySQL,因此第一步是下载框架文件。访问Yii官方网站并下载最新的稳定版本(本文撰写时为1.1.13)。解压ZIP文件以获取文件夹yii-1.1.13.e9e4a0(版本标识符可能因您下载的版本而异),将其重命名为yii,然后将其移动到您的Web可访问根目录。在我的系统中,这是C:\wamp\www,因此框架文件的路径将为C:\wamp\www\yii。在本文中,我将其称为<yiiroot></yiiroot>,以便即使您的设置不同,您也能轻松地跟随操作。接下来,我们应该检查Yii的哪些功能将受我们的系统支持。在浏览器中访问http://localhost/yii/requirements/以查看框架的要求详细信息。由于我们将使用MySQL数据库,因此您应该启用了MYSQL PDO扩展。

PHP Master | Build a CRUD App with Yii in Minutes

我们希望快速检查Yii的要求,这就是我们将文件放在可访问目录中的原因,但建议将Yii文件保存在Web根目录之外。检查之后,您可以随意将其移动到其他位置。

继续前进

每个Web应用程序都有一个目录结构,Yii应用程序也需要在Web根目录内维护分层结构。要使用合适的目录结构创建骨架应用程序,我们可以使用Yii的命令行工具yiic。导航到Web根目录并键入以下内容:

<yiiroot>/framework/yiic webapp yiitest
登录后复制
登录后复制

这将创建名为yiitest的骨架应用程序,其中包含最少必需的文件。在其中,您将找到index.php,它用作入口脚本;它接受用户请求并决定哪个控制器应该处理该请求。Yii基于MVC和OOP原则,因此您应该熟悉这些主题。如果您不熟悉MVC,请阅读SitePoint系列文章《MVC模式和PHP》,它提供了一个很好的介绍。Yii URL看起来像http://localhost/yiitest/index.php?r=controllerID/actionID。例如,在博客系统中,URL可能是http://localhost/yiitest/index.php?r=post/createpost是控制器ID,create是操作ID。入口脚本根据ID决定要调用哪个控制器和方法。ID为post的控制器必须命名为PostController(ID从类名中去除后缀“Controller”并将第一个字母转换为小写)。操作ID是以类似的方式存在的控制器内方法的ID;在PostController中,将有一个名为actionCreate()的方法。可能有多个与控制器关联的视图,因此我们将视图文件保存在protected/views/*controllerID*文件夹中。我们可以在上述目录中为我们的控制器创建一个名为create.php的视图文件,然后只需编写以下代码即可将此视图呈现给用户:

public function actionCreate()
{
    $this->render('create');
}
登录后复制

如有必要,也可以向视图传递其他数据。操作如下:

$this->render('create', array('data' => $data_item));
登录后复制

在视图文件中,我们可以通过$data变量访问数据。视图还可以访问$this,它指向呈现它的控制器实例。此外,如果您想要用户友好的URL,可以在protected/config/main.php中取消注释以下内容:

'urlManager'=>array(    
    'urlFormat'=>'path',
    'rules'=>array(
        '<w>/<d>'=>'<controller>/view',
        '<w>/<w>/<d>'=>'<controller>/<action>',
        '<w>/<w>'=>'<controller>/<action>',
    )
)
登录后复制

然后,URL将看起来像http://localhost/yiitest/controllerID/actionID

开发CRUD应用程序

现在您已经了解了重要的Yii约定,是时候开始使用CRUD了。在本节中,我们将开发一个简单的系统,用户可以在其中对博客文章执行CRUD操作(创建、检索、更新和删除)。

步骤1

创建MySQL数据库yiitest,并在其中创建一个名为posts的表。出于本文的目的,该表将只有3列:id、title和content。

CREATE TABLE posts (
    id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
    title VARCHAR(100),
    content TEXT
)
登录后复制

打开应用程序的配置文件(protected/config/main.php)并取消注释以下内容:

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=yiitest',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
)
登录后复制

testdrive替换为我们的数据库名称,即yiitest。显然,您还应该提供Yii连接所需的凭据。

步骤2

在Yii中,每个数据库表都应该有一个对应类型的模型类CActiveRecord。好处是,我们不必直接处理数据库表。相反,我们可以使用与表的不同行对应的模型对象。例如,Post类是posts表的模型。此类的对象表示来自posts表的一行,并具有表示列值的属性。为了快速生成模型,我们将使用Yii的基于Web的工具gii。此工具可用于生成模型、控制器和表单,用于CRUD操作。要在项目中使用gii,请在应用程序的配置文件中找到以下内容并取消注释它并添加密码。

<yiiroot>/framework/yiic webapp yiitest
登录后复制
登录后复制

然后使用以下URL访问giihttp://localhost/yiitest/index.php?r=gii。如果您使用的是用户友好的URL,则URL为:http://localhost/yiitest/gii。单击“模型生成器”。gii将询问您表名;为表名输入“posts”,为模型使用名称“Post”。然后单击“生成”以创建模型。

PHP Master | Build a CRUD App with Yii in Minutes

检查protected/models,您将在其中找到文件Post.php

步骤3

现在单击“CRUD生成器”。将模型名称输入为“Post”。控制器ID将自动填充为“post”。这意味着将在PostController.php名称下生成一个新的控制器。单击“生成”。该过程将生成控制器以及用于CRUD操作的几个视图文件。

PHP Master | Build a CRUD App with Yii in Minutes

现在您有了一个全新的CRUD应用程序!单击“立即试用”链接进行测试。要管理帖子,您需要以admin/admin身份登录。要创建新帖子,您需要访问http://localhost/yiitest/post/create,要更新特定帖子,只需将浏览器指向http://localhost/yiitest/post/update/postID即可。同样,您可以列出所有帖子并删除其中一些或全部帖子。

结论

在开发Web 2.0项目方面,Yii非常强大。事实上,我们刚刚看到在短短几分钟内创建功能齐全的CRUD系统是多么容易!显然,Yii可以为您节省大量工作,因为您不必从头开始。Yii为我们提供了基础,我们可以根据需要进行扩展。

(后续的FAQ部分,由于篇幅过长,建议另行整理成单独的文档。)

以上是PHP主|在几分钟内用yii构建一个CRUD应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板