-
开端yaf之旅
添加时间:2013-7-25 点击量:目次布局
+ public //网站根目次
- index.php //进口文件
- .htaccess //重写规矩
+ conf
|- application.ini //设备文件
application/
+ controllers
- Index.php //默认把握器
+ views
|+ index //把握器
- index.phtml //默认视图
+ modules //其他模块
- library //组件目次
- models //model目次
- plugins //插件目次进口文件
进口文件是所有恳求的进口, 一般都借助于rewrite规矩, 把所有的恳求都重定向到这个进口文件.
一个经典的进口文件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_Simple, Yaf_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中, 设备文件支撑持续, 支撑分节. 并对PHP的常量进行支撑. 你不消愁闷设备文件太大造成解析机能题目, 因为Yaf会在第一个运行的时辰载入设备文件, 把格局化后的内容对峙在内存中. 直到设备文件有了批改, 才会再次载入.
一个简单的设备文件
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把握器
在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);
}
}
?>视图文件
Yaf支撑简单的视图引擎, 并且支撑用户自定义本身的视图引擎, 比如Smarty.
对于默认模块, 视图文件的路径是在application目次下的views目次中以小写的action名的目次中.
一个默认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彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》