學習yaf(一)

官網地址:http://www.laruence.com/manual (推薦看官方文檔)php

一. 安裝與搭建 yaf框架 以及第一個 hello worldcss

編譯yaf

tar -zxf  yaf-3.0.4.tgz
cd yaf目錄
phpize
./configure --with-php-config=$PHP_BIN/php-config
make && make install

而後在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.phpapp

<?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 配置選項

選項名稱 默認值 可修改範圍 更新記錄
yaf.environ product PHP_INI_ALL 環境名稱, 當用INI做爲Yaf的配置文件時, 這個指明瞭Yaf將要在INI配置中讀取的節的名字
yaf.library NULL PHP_INI_ALL 全局類庫的目錄路徑
yaf.cache_config 0 PHP_INI_SYSTEM 是否緩存配置文件(只針對INI配置文件生效), 打開此選項可在複雜配置的狀況下提升性能
yaf.name_suffix 1 PHP_INI_ALL 在處理Controller, Action, Plugin, Model的時候, 類名中關鍵信息是不是後綴式, 好比UserModel, 而在前綴模式下則是ModelUser
yaf.name_separator "" PHP_INI_ALL 在處理Controller, Action, Plugin, Model的時候, 前綴和名字之間的分隔符, 默認爲空, 也就是UserPlugin, 加入設置爲"_", 則判斷的依據就會變成:"User_Plugin", 這個主要是爲了兼容ST已有的命名規範
yaf.forward_limit 5 PHP_INI_ALL forward最大嵌套深度
yaf.use_namespace 0 PHP_INI_SYSTEM 開啓的狀況下, Yaf將會使用命名空間方式註冊本身的類, 好比Yaf_Application將會變成Yaf\Application
yaf.use_spl_autoload 0 PHP_INI_ALL 開啓的狀況下, Yaf在加載不成功的狀況下, 會繼續讓PHP的自動加載函數加載, 從性能考慮, 除非特殊狀況, 不然保持這個選項關閉

控制器

在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!

相關文章
相關標籤/搜索