0 关注者

Yii 试驾

在本节中,我们将介绍如何创建一个框架应用程序,它将作为我们的起点。为简单起见,我们假设 Web 服务器的文档根目录为 /wwwroot,相应的 URL 为 http://www.example.com/

1. 安装 Yii

我们首先安装 Yii 框架。从 www.yiiframework.com 获取 Yii 发布文件(版本 1.1.1 或更高版本)的副本,并将其解压到 /wwwroot/yii 目录下。仔细检查以确保存在 /wwwroot/yii/framework 目录。

提示:Yii 框架可以安装在文件系统中的任何位置,不一定在 Web 文件夹下。它的 framework 目录包含所有框架代码,并且是部署 Yii 应用程序时唯一需要的框架目录。单个 Yii 安装可以被多个 Yii 应用程序使用。

安装 Yii 后,打开浏览器窗口并访问 URL http://www.example.com/yii/requirements/index.php。它显示了 Yii 发布版本中提供的需求检查器。对于我们的博客应用程序,除了 Yii 所需的最低要求外,我们还需要启用 pdopdo_sqlite PHP 扩展,以便我们可以访问 SQLite 数据库。

2. 创建框架应用程序

然后,我们使用 yiic 工具在 /wwwroot/blog 目录下创建一个框架应用程序。yiic 工具是 Yii 发布版本中提供的命令行工具。它可用于生成代码以减少某些重复的编码任务。

打开命令窗口并执行以下命令

% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
......

提示:为了如上所示使用 yiic 工具,CLI PHP 程序必须位于命令搜索路径上。如果不是,则可以使用以下命令代替

path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog

要试用我们刚刚创建的应用程序,请打开 Web 浏览器并导航到 URL http://www.example.com/blog/index.php。我们应该看到我们的框架应用程序已经具有四个功能齐全的页面:主页、关于页面、联系页面和登录页面。

在下文中,我们将简要描述此框架应用程序中的内容。

入口脚本

我们有一个 入口脚本 文件 /wwwroot/blog/index.php,其内容如下

<?php
$yii='/wwwroot/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
 
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
 
require_once($yii);
Yii::createWebApplication($config)->run();

这是 Web 用户可以直接访问的唯一脚本。该脚本首先包含 Yii 引导文件 yii.php。然后,它使用指定的配置创建一个 应用程序 实例并执行该应用程序。

应用程序基础目录

我们还有一个 应用程序基础目录 /wwwroot/blog/protected。我们的大多数代码和数据都将放置在此目录下,并且应防止 Web 用户访问。对于 Apache httpd Web 服务器,我们在此目录下放置一个 .htaccess 文件,其内容如下

deny from all

对于其他 Web 服务器,请参阅相应的文档以了解如何防止 Web 用户访问目录。

3. 应用程序工作流程

为了帮助理解 Yii 的工作原理,我们将描述用户访问其联系页面时框架应用程序中的主要工作流程

  1. 用户请求 URL http://www.example.com/blog/index.php?r=site/contact
  2. Web 服务器执行 入口脚本 以处理请求;
  3. 创建 应用程序 实例,并使用应用程序配置文件 /wwwroot/blog/protected/config/main.php 中指定的初始属性值进行配置;
  4. 应用程序将请求解析为 控制器控制器操作。对于联系页面请求,它被解析为 site 控制器和 contact 操作(/wwwroot/blog/protected/controllers/SiteController.php 中的 actionContact 方法);
  5. 应用程序以 SiteController 实例的形式创建 site 控制器,然后执行它;
  6. SiteController 实例通过调用其 actionContact() 方法执行 contact 操作;
  7. actionContact 方法将名为 contact视图 呈现给 Web 用户。在内部,这是通过包含视图文件 /wwwroot/blog/protected/views/site/contact.php 并将其结果嵌入到 布局 文件 /wwwroot/blog/protected/views/layouts/column1.php 中来实现的。

发现错别字或您认为此页面需要改进?
在 github 上编辑它 !