假設Yaf已經正確編譯, 安裝.
## Hello Yaf
### 目錄結構
一個典型的目錄結構
> + public
|- index.php //入口文件
|- .htaccess //重寫規則
|+ css
|+ img
|+ js
>+ conf
|- application.ini //配置文件
>+ application
|+ controllers
|- Index.php //默認控制器
|+ views
|+ index //控制器
|- index.phtml //默認視圖
|+ modules //其他模塊
|+ library //本地類庫
|+ models //model目錄
|+ plugins //插件目錄
### 入口文件
幾乎所有php框架都采用了單一入口方式,入口文件是所有請求的入口, 一般都借助于rewrite規則, 把所有的請求都重定向到這個入口文件.
#### 一個經典的入口文件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會在第一個運行的時候載入配置文件, 把格式化后的內容保持在內存中. 直到配置文件有了修改, 才會再次載入.
#### 一個簡單的配置文件application/conf/application.ini
`[product]
;支持直接寫PHP中的已定義常量
application.directory=APP_PATH "/application/" `
### 控制器
在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");
}
}
?>`
### 視圖文件
Yaf支持簡單的視圖引擎, 并且支持用戶自定義自己的視圖引擎, 比如Smarty.
對于默認模塊, 視圖文件的路徑是在application目錄下的views目錄中以小寫的action名的目錄中.
`<html>
<head>
<title>Hello Yaf</title>
</head>
<body>
<?php echo $content;?>
</body>
</html>`
html在這個文檔里不顯示,我這里截了一張圖
]
### 運行
在瀏覽器輸入 http://yourhostname/public/index.php
是不是看到了頁面輸出的Hello Yaf
### 額外說明一下:
必要的配置項
Yaf和用戶共用一個配置空間, 也就是在Yaf_Application初始化時刻給出的配置文件中的配置. 作為區別, Yaf的配置項都以ap開頭. Yaf的核心必不可少的配置項只有一個(其實, 這個也可以有默認參數, 但是作者覺得完全沒有配置, 顯得太寒酸了).
application.directory String 應用的絕對目錄路徑
就是我們剛在application/conf/application.ini里配置的內容
### Yaf的項目可選配置信息
詳情可以穩步到yaf文檔查看http://www.laruence.com/manual/yaf.config.optional.html