• 技术文章 >php教程 >PHP源码

    Yaf框架入门只hello yaf

    PHP中文网PHP中文网2016-05-26 08:19:09原创324

    帮助大家快速的入手Yaf框架

    1. [代码][PHP]代码

    1、组织目录结构 
    
    对于使用过框架的来说这点很好理解,对于没使用过框架的来说建议先别在这死磕,先记着吧,简单点就是对于我们的文件结构做一些规定,让自己和别人都能看的清楚,能很快的找到需要的文件或类。 
    
    作者说过对于Yaf的应用, 都应该遵循类似下面的目录结构.下面我们看一个典型的Yaf目录结构 
    + public
      |- index.php //入口文件
      |- .htaccess //重写规则    
      |+ css
      |+ img
      |+ js
    + conf
      |- application.ini //配置文件   
    + application
      |+ controllers
         |- Index.php //默认控制器
      |+ views    
         |+ index   //控制器
            |- index.phtml //默认视图
      |+ modules //其他模块
      |+ library //本地类库
      |+ models  //model目录
      |+ plugins //插件目录
    
    
    2、入口文件 
    
    框架都得有一个统一的入口文件,入口文件是所有请求的入口, 一般都借助于rewrite规则, 把所有的请求都重定向到这个入口文件. 
    
    我们这里就先简单地copy一下代码吧,后面再来一一讲解,下面看一个典型的入口文件 public/index.php 
    <?php
    define("APP_PATH",  realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
    $app  = new Yaf_Application(APP_PATH . "/conf/application.ini");
    $app->run();
    
    
    3、URL重写 
    
    因为我们要把网站的所有请求都定为到我们指定的入口文件中,然后由入口文件根据请求的url调度到对于的模块,控制器,action处理,所以我们需要配置好服务器的url重写。 
    
    下面列出了Apache,Nginx,Lighttpd,SAE的常用重写规则,咱们可以根据自身使用的web服务器进行配置 
    
    //Apache的Rewrite (httpd.conf)
    #.htaccess, 当然也可以写在httpd.conf
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* index.php
    
    
    //Nginx的Rewrite (nginx.conf)
    server {
      listen ****;
      server_name  domain.com;
      root   document_root;
      index  index.php index.html index.htm;
    
       location  / { 
            index public/index.php;
            if (!-f $request_filename) {
                rewrite ^/(.*) /public/index.php?$1 last;
            }   
       }   
    }
    
    
    //Lighttpd的Rewrite (lighttpd.conf)
    $HTTP["host"] =~ "(www.)?domain.com$" {
      url.rewrite = (
         "^/(.+)/?$"  => "/index.php/$1",
      )
    }
    
    //SAE的Rewrite (config.yaml)
    name: your_app_name
    version: 1
    handle:
        - rewrite: if(!is_dir() && !is_file() && path ~ "^(.*)$" ) goto "/index.php"
    
    
    记住:修改配置文件之后记得要重启webserver哦! 
    
    
    4、配置文件 
    
    在Yaf中,框架给我们封装好了一个配置类,在这里刚接触我们可以先不去了解他,只需记住、模仿就行了。 
    
    在Yaf中, 配置文件支持继承, 支持分节. 并对PHP的常量进行支持. 你不用担心配置文件太大造成解析性能问题, 因为Yaf会在第一个运行的时候载入配置文件, 把格式化后的内容保持在内存中. 直到配置文件有了修改, 才会再次载入. 
    
    一个简单的配置文件application/conf/application.ini 
    [product]
    ;支持直接写PHP中的已定义常量
    application.directory=APP_PATH "/application/"
    
    
    5、控制器 
    在Yaf中, 默认的模块/控制器/动作, 都是以Index命名的, 当然,这是可通过配置文件修改的. 
    
    对于默认模块, 控制器的目录是在application目录下的controllers目录下, Action的命名规则是"名字+Action" 
    
    默认控制器application/controllers/Index.php 
    <?php
    class IndexController extends Yaf_Controller_Abstract {
       public function indexAction() {//默认Action
           $this->getView()->assign("content", "Hello Yaf");
       }
    }
    ?>
    
    
    6、视图文件 
    
    Yaf支持简单的视图引擎, 并且支持用户自定义自己的视图引擎, 比如Smarty。对于默认模块, 视图文件的路径是在application目录下的views目录中以小写的action名的目录中. 
    
    一个默认Action的视图application/views/index/index.phtml 
    <html>
    <head>
       <title>Hello Yaf</title>
    </head>
    <body>
      <?php echo $content;?>
    </body>
    </html>
    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:
    上一篇:THINKPHP3.2.3含有树形结构的无限分类的实现 下一篇:PHP常用处理操作类 - 随时更新
    大前端线上培训班

    相关文章推荐

    • php生成略缩图程序代码与详细介绍• 图片加水印程序 • 5种方法让你成为php开发高手• 一个简易的PHP文件上传类(适合与新手学习用)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网