https://github.com/laruence/yaf
https://www.laruence.com/manual/tutorial.firstpage.html
你也可以使用Yaf的代码生成器: yaf_cg 来快速的构建一个应用例子.
$php ~/PhpstormProjects/c/php-src/ext/yaf/tools/cg/yaf_cg -a firstYaf
Outputing Yaf Skeleton to /Users/didi/PhpstormProjects/c/php-src/ext/yaf/tools/cg/yaf_skeleton
Generating done
~/PhpstormProjects/c/php-src/ext/yaf/tools/cg/yaf_cg -a firstYaf -d ./yaf
Outputing Yaf Skeleton to ./yaf
Generating done
~/PhpstormProjects/php/IDL/yaf$tree
.
|__application
| |Bootstrap.php
| |controllers
| | |Error.php
| | |Index.php
| |library
| | |readme.txt
| |models
| | |Sample.php
| |plugins
| | |Sample.php
| |views
| | |error
| | | |error.phtml
| | |index
| | | |index.phtml
|conf
| |application.ini
|index.php
|__readme.txt
入口文件
入口文件是所有请求的入口, 一般都借助于rewrite规则, 把所有的请求都重定向到这个入口文件.
例 3.2. 一个经典的入口文件public/index.php
<?php
define(“APP_PATH”, realpath(dirname(FILE) . ‘/../’)); /* 指向public的上一级 */
$app = new Yaf_Application(APP_PATH . “/conf/application.ini”);
$app->run();
配置文件
在Yaf中, 配置文件支持继承, 支持分节. 并对PHP的常量进行支持. 你不用担心配置文件太大造成解析性能问题, 因为Yaf会在第一个运行的时候载入配置文件, 把格式化后的内容保持在内存中. 直到配置文件有了修改, 才会再次载入.
例 3.7. 一个简单的配置文件application/conf/application.ini
[product]
;支持直接写PHP中的已定义常量
application.directory=APP_PATH “/application/”
控制器
在Yaf中, 默认的模块/控制器/动作, 都是以Index命名的, 当然,这是可通过配置文件修改的.
对于默认模块, 控制器的目录是在application目录下的controllers目录下, Action的命名规则是”名字+Action”
例 3.8. 默认控制器application/controllers/Index.php
<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {//默认Action
$this->getView()->assign(“content”, “Hello World”);
}
}
?>