官網地址:http://www.laruence.com/manual (推薦看官方文檔)php
一. 安裝與搭建 yaf框架 以及第一個 hello worldcss
而後在php.ini中載入yaf.so, 重啓PHPhtml
而後php-m 查看是否已有yaf擴展apache
對於Yaf的應用, 都應該遵循相似下面的目錄結構.瀏覽器
一個典型的目錄結構緩存
+ public |- index.php //入口文件 |- .htaccess //重寫規則 |+ css |+ img |+ js + conf |- application.ini //配置文件 + application |+ controllers |- Index.php //默認控制器 |+ views |+ index //控制器 |- index.phtml //默認視圖 |+ modules //其餘模塊 |+ library //本地類庫 |+ models //model目錄 |+ plugins //插件目錄
入口文件是全部請求的入口, 通常都藉助於rewrite規則, 把全部的請求都重定向到這個入口文件.
一個經典的入口文件public/index.php
app
<?php define("APP_PATH", realpath(dirname(__FILE__) . '/../')); /* 指向public的上一級 */ $app = new Yaf_Application(APP_PATH . "/conf/application.ini"); $app->run();
Apache的Rewrite (httpd.conf) .htaccess 重寫路由框架
#.htaccess, 固然也能夠寫在httpd.conf RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php
在Yaf中, 配置文件支持繼承, 支持分節. 並對PHP的常量進行支持. 你不用擔憂配置文件太大形成解析性能問題, 由於Yaf會在第一個運行的時候載入配置文件, 把格式化後的內容保持在內存中. 直到配置文件有了修改, 纔會再次載入.函數
一個簡單的配置文件application/conf/application.ini
性能
[product] ;支持直接寫PHP中的已定義常量 application.directory=APP_PATH "/application/"
Yaf 配置選項
在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 World</title> </head> <body> <?php echo $content;?> </body> </html>
在瀏覽器輸入
http://127.0.01 (記得在apache配置文件中將訪問目錄指向到 public)
打印輸出:hello world!