PHP框架Yii系列教程(一):入门实例

 

1准备Yii源码

首先新建helloyii目录作为Web应用的根目录,并添加到Nginx的配置文件中。然后将Yii框架源码部署到helloyii下,目录结构如下:

helloyii/

|-- framework

    |-- ……

    |-- YiiBase.php

    |-- yiic

    |-- yii.php

    `-- zii

2编写HelloWorld

2.1目录结构

程序目录结构如下:

app/

|-- index.php

`-- protected

    |-- controllers

    |   `-- HelloController.php

    `-- views

        `-- hello

            `-- result.php

2.2主要代码

index.php

===============================================================================

<?php

       // change the following paths if necessary

       $yii=dirname(__FILE__).'/../framework/yii.php';

 

       // remove the following lines when in production mode

       defined('YII_DEBUG') or define('YII_DEBUG',true);

       // specify how many levels of call stack should be shown in each logmessage

       defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

 

       require_once($yii);

       Yii::createWebApplication()->run();

?>

 

protected/controllers/HelloController.php

===============================================================================

<?php

       class HelloController extends CController

       {

                public function actionSay()

                {

                        $varYii = "hi,yii";

                       $this->render('result', array('varYii'=>$varYii));

                }

       }

?>

 

protected/views/hello/result.php

===============================================================================

<?php

       echo $varYii;

?>

2.3开始访问

现在可以直接访问了:http://helloyii.com/app/index.php?r=hello/say

3源码解析

3.1资源映射规则

访问Url经过index.php处理,将请求转发到HelloController的actionSay方法中,然后通过result.php生成最终HTML页面。具体映射关系如下图所示:


注:如果ControllerIDActionID为默认值siteindex的话,则可以通过http://helloyii.com/app/index.php直接访问。请求会转发给SiteControlleractionIndex()方法。

4自动生成代码工具

Yii提供了Yiic和Gii两个代码生成工具,可以生成内容更加丰富的实例,下面就来试用一下。

 

首先切换到/export/data/helloyii,然后执行:

framework/yiicwebapp demo

将会在/export/data/helloyii/demo中自动生成示例程序代码。

 

现在在浏览器中访问helloyii.com/demo/index.php即可看到成功页面。


5常见问题

访问index.php时,PHP打印警告日志:Warning: date(): It is not safe to rely on the system's timezonesettings. You are *required* to use the date.timezone setting or thedate_default_timezone_set() function…

 

在php.ini中设置默认时区,或者修改helloyii/demo/protected/views/layouts/main.php:

===============================================================================

……

<?phpdate_default_timezone_set('Europe/Athens'); ?>

 

       <div id="footer">

                Copyright &copy; <?phpecho date('Y'); ?> by My Company.<br/>

                All Rights Reserved.<br/>

                <?php echo Yii::powered();?>

       </div><!-- footer -->

===============================================================================

 

参考资料

1一起学Yii—-Hello world

http://istrone.com/?p=451

 

2 yii框架之hello world

http://513394217.blog.163.com/blog/static/10979118620124288721586/

 

3 Creating Your First Yii Application

http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app

 

4应用Yii1.1和PHP5进行敏捷Web开发

http://yiibook.com/book/agile_web_application_development_with_yii1.1_and_php5/chapter-2

 

posted on 2013-04-27 09:45  毛小娃  阅读(177)  评论(0编辑  收藏  举报

导航