开头yaf之旅

视图像和文字件

Yaf扶助容易的视图引擎, 并且帮忙用户自定义本身的视图引擎, 比如斯马特y.

对此暗中同意模块,
视图文件的路子是在application目录下的views目录中以小写的action名的目录中.

3个暗许Action的视图application/views/index/index.phtml

 

<html>
 <head>
   <title>Hello yaf</title>
 </head>
 <body>
  <?php echo $content;?>
 </body>
</html>

下一场在浏览器输入nginx.conf设置的servername,yaf.demo.com。是或不是出去了??

 

表 4.2. Yaf可选配置项

名称 值类型 默认值 说明
application.ext String php PHP脚本的扩展名
application.bootstrap String Bootstrapplication.php Bootstrap路径(绝对路径)
application.library String application.directory + "/library" 本地(自身)类库的绝对目录地址
application.baseUri String NULL 在路由中, 需要忽略的路径前缀, 一般不需要设置, Yaf会自动判断.
application.dispatcher.defaultModule String index 默认的模块
application.dispatcher.throwException Bool True 在出错的时候, 是否抛出异常
application.dispatcher.catchException Bool False 是否使用默认的异常捕获Controller, 如果开启, 在有未捕获的异常的时候, 控制权会交给ErrorController的errorAction方法, 可以通过$request->getException()获得此异常对象
application.dispatcher.defaultController String index 默认的控制器
application.dispatcher.defaultAction String index 默认的动作
application.view.ext String phtml 视图模板扩展名
application.modules String Index 声明存在的模块名, 请注意, 如果你要定义这个值, 一定要定义Index Module
application.system.* String * 通过这个属性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是请注意只有PHP_INI_ALL的配置项才可以在这里被修改, 此选项从2.2.0开始引入

 

布置文件

在Yaf中, 配置文件帮助继承, 扶助分节. 并对PHP的常量实行援救.
你不要顾虑配置文件太大导致解析品质难点,
因为Yaf会在首先个运转的时候载入配置文件, 把格式化后的始末保持在内部存款和储蓄器中.
直到配置文件有了修改, 才会再度载入.

1个简易的配备文件application/conf/application.ini

[common]
application.directory = APP_PATH  "/application"
application.dispatcher.catchException = 0
application.dispatcher.throwException = 0
application.view.ext = 'phtml'
[product : common]
;enable the error controller
application.dispatcher.catchException=1

入口文件

进口文件是兼备请求的入口, 一般都凭借rewrite规则,
把装有的伸手都重定向到这几个进口文件.

1个经文的输入文件public/index.php

<?php
define("APP_PATH",  realpath(dirname(__FILE__) . '/../')); /* 指向public的上一级 */
$app  = new Yaf_Application(APP_PATH . "/conf/application.ini");
$app->run();

目录结构

重写规则

唯有大家采用基于query
string的路由协议(Yaf_Route_SimpleYaf_Route_Supervar),
不然大家就需求运用WebServer提供的Rewrite规则, 把持有这一个利用的央浼,
都定向到地方提到的入口文件.

修改.htaccess文件

Nginx的Rewrite (nginx.conf)

server {
  listen 80;
  server_name  yaf.demo.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

控制器

在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 World");
   }
}
?>
+ public  //网站根目录
   - index.php //入口文件
   - .htaccess //重写规则    
+ conf
  |- application.ini //配置文件   
application/
  + controllers
     - Index.php //默认控制器
  + views    
     |+ index   //控制器
        - index.phtml //默认视图
  + modules //其他模块
  - library    //组件目录
  - models  //model目录
  - plugins //插件目录

相关文章