读书人

Yii学习-运用Yii来建立博客

发布时间: 2013-08-26 12:17:40 作者: rapoo

Yii学习--使用Yii来建立博客

?

Yii 之初体验??
  1. 安装Yii
  2. 创建应用骨架
  3. 应用的工作流程

在这一部分里,我们将讲解怎样建立一个程序的骨架作为着手点。为简单起见,我们假设Web服务器根目录是/wwwroot?,相应的URL是?http://www.example.com/

1. 安装Yii?

首先,我们来安装Yii框架。 从?www.yiiframework.com?获取一份Yii的拷贝,解压缩到?/wwwroot/yii。再次检查以确保?/wwwroot/yii/framework?目录存在。

提示:?Yii框架可以安装在文件系统的任何地方,而不是必须在Web目录中。它的?framework?目录包含了框架的代码,这也是部署Yii应用时唯一一个必要的目录。一个单独的Yii安装可以被用于多个Yii应用。

Yii安装完毕之后,打开浏览器访问URL?http://www.example.com/yii/requirements/index.php。它将显示Yii提供的需求检查程序。对我们的Blog应用来说,除了Yii所需的最小需求之外,我们还需要启用?pdo?和pdo_sqlite?这两个PHP 扩展。这样我们才能访问SQLite数据库。

2. 创建应用骨架?

然后,我们使用?yiic?工具在?/wwwroot/blog?目录下创建一个应用骨架。yiic?工具是在Yii发布包中提供的命令行工具。它可以用于创建代码以减少某些重复的编码工作。

打开一个命令行窗口,执行以下命令:

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

提示:?为了使用上面提到的?yiic?工具,CLI PHP 程序必须在命令搜索路径内(译者注:即 php.exe 所在的目录必须在PATH环境变量中),否则,可能要使用下面的命令:

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

要查看我们刚创建的应用,打开浏览器访问 URL?http://www.example.com/blog/index.php。可以看到我们的程序骨架已经有了四个具备完整功能的页面:首页(Home),“关于”页(About),联系页(Contact)和登录页(Login)。

接下来,我们简单介绍一下在这个程序骨架中的内容。

入口脚本

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

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

这是唯一一个网站用户可以直接访问的脚本。此脚本首先包含了Yii的引导文件?yii.php。然后它按照指定的配置创建了一个应用?实例并执行此应用。

基础应用目录

我们还有一个?应用基础目录?/wwwroot/blog/protected。我们主要的代码和数据将放在此目录下,它应该被保护起来,防止网站访客的直接访问。针对?Apache httpd 网站服务器?,我们在此目录下放了一个?.htaccess?文件,其内容如下:

deny from all

对于其他的网站服务器,请参考相应的关于保护目录以防止被访客直接访问的相关文档。

3. 应用的工作流程?

为了帮你理解Yii是怎样工作的,对于我们的程序骨架,当有人访问它的联系页(Contact)时,我们对它的工作流程描述如下:

  1. 用户请求此 URL?http://www.example.com/blog/index.php?r=site/contact
  2. 入口脚本?被网站服务器执行以处理此请求;
  3. 一个?应用?的实例被创建,其配置参数为/wwwroot/blog/protected/config/main.php?应用配置文件中指定的初始值;
  4. 应用分派此请求到一个?控制器(Controller)?和一个?控制器动作(Controller action)。对于联系页(Contact)的请求,它分派到了?site?控制器和?contact?动作 (即/wwwroot/blog/protected/controllers/SiteController.php?中的?actionContact?方法);
  5. 应用按?SiteController?实例创建了?site?控制器并执行;
  6. SiteController?实例通过调用它的?actionContact()?方法执行?contact?动作;
  7. actionContact?方法为用户渲染一个名为?contact?的?视图(View)?。在程序内部,这是通过包含一个视图文件?/wwwroot/blog/protected/views/site/contact.php?并将结果插入?布局?文件/wwwroot/blog/protected/views/layouts/column1.php?实现的。

?

?

? ? ?需求分析??

? ? ? ? 我们要开发的博客系统是一个单用户系统。系统的所有者可以执行以下操作:

读书人网 >编程

热点推荐