yaf_cg 生成yaf框架

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




  • public
    |- index.php //入口文件
    |- .htaccess //重写规则

    |+ css
    |+ img
    |+ js

  • conf
    |- application.ini //配置文件

  • application
    |+ controllers
    |- Index.php //默认控制器
    |+ views

    |+ index //控制器
    |- index.phtml //默认视图
    |+ modules //其他模块
    |+ library //本地类库
    |+ models //model目录
    |+ plugins //插件目录




入口文件
入口文件是所有请求的入口, 一般都借助于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”);
}
}
?>



Category php