yii入门示例

Yii安装

最后更新 2009-07-15 23:08:20

在这一节中,我们用Yii创建了一个应用的基本框架作为起点。为方便起见,我们假定WEB服务的根目录为/wwwroot。对应的访问地址为http://www.example.com/

安装

我们首先安装Yii framework。从yiiframework获取Yii压缩包,将其解压到目录 /wwwroot/yii,再次检查,确保目录/wwwroot/yii/framework存在。

Yii framework可以被安装到系统的任意文件夹,其中的 framework目录包含了所有的框架代码,也是发布时唯一需要的目录。一个安装好的Yii框架,可以被多个Yii应用使用。

安装之后,打开浏览器窗口,访问地址http://www.example.com/yii/requirements/index.php。 这将显示Yii包里提供的配置需求检查。请确保我们的WEB服务器和PHP配置符合Yii配置需求的最低要求。尤其是,我们要确保php的pdo扩展和 pdo_sqlite模块启用,因为在接下来的blog应用中我们需要以上扩展来连接SQLite数据库。可以查看到的配置大体如下图。

建立应用的基本框架

我们使用Yiic工具,在目录/wwwroot/blog.下建立应用的基本框架。Yii包里提供的Yiic工具是个命令行工具,它可以对一些任务(task)生成代码。

打开一个命令行窗口执行如下命令

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

我本机的yiiframework保存在E:\web\yii\framework。命令行执行情况如下:

E:\web\yii\framework>yiic webapp e:/web/yii\blogCreate a Web application under 'E:\web\yii\blog'? [Yes|No] y      mkdir E:/web/yii/blog      mkdir E:/web/yii/blog/assets   generate assets/.yii      mkdir E:/web/yii/blog/css   generate css/bg.gif   generate css/form.css   generate css/main.css      mkdir E:/web/yii/blog/images   generate images/.yii   generate index.php      mkdir E:/web/yii/blog/protected   generate protected/.htaccess      mkdir E:/web/yii/blog/protected/commands      mkdir E:/web/yii/blog/protected/commands/shell   generate protected/commands/shell/.yii      mkdir E:/web/yii/blog/protected/components   generate protected/components/MainMenu.php   generate protected/components/UserIdentity.php      mkdir E:/web/yii/blog/protected/components/views   generate protected/components/views/mainMenu.php      mkdir E:/web/yii/blog/protected/config   generate protected/config/console.php   generate protected/config/main.php      mkdir E:/web/yii/blog/protected/controllers   generate protected/controllers/SiteController.php      mkdir E:/web/yii/blog/protected/extensions   generate protected/extensions/.yii      mkdir E:/web/yii/blog/protected/messages   generate protected/messages/.yii      mkdir E:/web/yii/blog/protected/models   generate protected/models/ContactForm.php   generate protected/models/LoginForm.php      mkdir E:/web/yii/blog/protected/runtime   generate protected/runtime/.yii      mkdir E:/web/yii/blog/protected/views      mkdir E:/web/yii/blog/protected/views/layouts   generate protected/views/layouts/main.php      mkdir E:/web/yii/blog/protected/views/site   generate protected/views/site/contact.php   generate protected/views/site/index.php   generate protected/views/site/login.php      mkdir E:/web/yii/blog/protected/views/system   generate protected/views/system/.yii   generate protected/yiic   generate protected/yiic.bat   generate protected/yiic.php      mkdir E:/web/yii/blog/themes      mkdir E:/web/yii/blog/themes/classic      mkdir E:/web/yii/blog/themes/classic/views   generate themes/classic/views/.htaccess      mkdir E:/web/yii/blog/themes/classic/views/layouts   generate themes/classic/views/layouts/.yii      mkdir E:/web/yii/blog/themes/classic/views/site   generate themes/classic/views/site/.yii      mkdir E:/web/yii/blog/themes/classic/views/system   generate themes/classic/views/system/.yiiYour application has been created successfully under E:\web\yii\blog.E:\web\yii\framework>

我本地的测试结果:



要使用上面的命令,必须把php所在的路径添加到环境变量中,以似的可以被直接调用,否则请参考如下命令格式:
path/to/php path/to/yii/framework/yiic.php webapp path/to/blog

测试我们新建立应用,可以访问地址http://www.example.com/blog/index.php我们可以看到我们的应用有三个完整的页面,主页、联系我们和用户登录。

接下来我们简要的说明下我们的应用框架中都有什么。

入口程序

我们有一个入口程序,存放在/wwwroot/blog/index.php,内容如下



 
  1. <?php
  2.  
  3. // yii引导文件的路径 以及配置文件main.php的路径。
  4. $yii='E:\web\yii\framework\yii.php';
  5. $config=dirname(__FILE__).'/protected/config/main.php';
  6.  
  7. // 正式环境下应该去掉,以提高性能,打开debug有利于调试
  8. defined('YII_DEBUG') or define('YII_DEBUG',true);
  9. //加载并运行
  10. require_once($yii);
  11. Yii::createWebApplication($config)->run();

 


这是唯一被web用户访问的脚本,代码首先加载yii的引导文件yii.php,然后用配置文件生成一个yii实例,并运行。

程序的基本目录

应用程序的基本目录在/wwwroot/blog/protected下面,大多数的代码和数据都保存在这下面。这个目录应该被保护起来以防止web用户的直接访问。对apache的WEB服务器,我们可以在这个目录下建立.htaccess文件。内容如下

deny from all

对于其他类型的WEB服务器,请参考相关手册中关于如何阻止用户直接访问的内容。

应用的工作流程

为了帮助理解Yii是如何工作的。我们介绍了,当用户访问联系我们页面时,我们的应用框架的主要工作流程

  1. 服务器执行入口程序也就是index.php来处理用户请求。
  2. 根据配置文件/wwwroot/blog/protected/config/main.php中的属性,创建一个应用程序实例
  3. 应用程序把请求分配给一个controller(控制器)和controller action(控制器的动作)进行响应,对联系我们页面来说,是分配给site控制器(Controller)和content 动作(action)进行响应。
  4. 应用程序建立一个名为SiteController的Site 控制器(Controller)实例,并执行
  5. SiteController实例通过actionContact方法来执行contact 动作(action)
  6. actionContact方法加载content视图展示给用户。内部实现为加载视图文件/wwwroot/blog/protected/views/site/contact.php,到布局文件/wwwroot/blog/protected/views/layouts/main.php.并填充执行结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值