zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    排序算法
    存储5——逻辑卷管理LVM
    php && 逻辑与运算符使用说明
    php分页代码
    PHP中获取当前页面的完整URL
    php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
    生成订单唯一id
    JS 返回上一步(退回上一步上一个网页)
    php实现的太平洋时间和北京时间互转的自定义函数
    php 上传视频的代码
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157746.html
Copyright © 2011-2022 走看看