程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 開始yaf之旅

開始yaf之旅

編輯:關於PHP編程

目錄結構

+ public  
   - index.php 
   - .htaccess 
+|- application.ini 
application/
  +- Index.php 
  +|+ index   
        - index.phtml 
  + modules 
  - library    
  - models  
  - plugins 

入口文件

入口文件是所有請求的入口, 一般都借助於rewrite規則, 把所有的請求都重定向到這個入口文件.

一個經典的入口文件public/index.php

<?("APP_PATH",  (() . '/../')); 
  =  Yaf_Application(APP_PATH . "/conf/application.ini"->run();

重寫規則

除非我們使用基於query string的路由協議(Yaf_Route_Simple, Yaf_Route_Supervar), 否則我們就需要使用WebServer提供的Rewrite規則, 把所有這個應用的請求, 都定向到上面提到的入口文件.

修改.htaccess文件

Nginx的Rewrite (nginx.conf)

 (!-^/(.*)  /index.php/$

配置文件

在Yaf中, 配置文件支持繼承, 支持分節. 並對PHP的常量進行支持. 你不用擔心配置文件太大造成解析性能問題, 因為Yaf會在第一個運行的時候載入配置文件, 把格式化後的內容保持在內存中. 直到配置文件有了修改, 才會再次載入.

一個簡單的配置文件application/conf/application.ini

= APP_PATH  = = = =

控制器

在Yaf中, 默認的模塊/控制器/動作, 都是以Index命名的, 當然,這是可通過配置文件修改的.

對於默認模塊, 控制器的目錄是在application目錄下的controllers目錄下, Action的命名規則是"名字+Action"

默認控制器application/controllers/Index.php

 
<? IndexController   indexAction() {
       ->getView()->assign("content", "Hello World"?>

視圖文件

Yaf支持簡單的視圖引擎, 並且支持用戶自定義自己的視圖引擎, 比如Smarty.

對於默認模塊, 視圖文件的路徑是在application目錄下的views目錄中以小寫的action名的目錄中.

一個默認Action的視圖application/views/index/index.phtml

 
<html>
 <head>
   <title>Hello yaf</title>
 </head>
 <body>
  <?php  ;?>
 </body>
</html>

然後在浏覽器輸入nginx.conf設置的servername,

 

表 4.2. Yaf可選配置項

名稱值類型默認值說明 application.ext String php PHP腳本的擴展名 application.bootstrap String Bootstrapplication.php Bootstrap路徑(絕對路徑) application.library String application.directory + "/library" 本地(自身)類庫的絕對目錄地址 application.baseUri String NULL 在路由中, 需要忽略的路徑前綴, 一般不需要設置, Yaf會自動判斷. application.dispatcher.defaultModule String index 默認的模塊 application.dispatcher.throwException Bool True 在出錯的時候, 是否拋出異常 application.dispatcher.catchException Bool False 是否使用默認的異常捕獲Controller, 如果開啟, 在有未捕獲的異常的時候, 控制權會交給ErrorController的errorAction方法, 可以通過$request->getException()獲得此異常對象 application.dispatcher.defaultController String index 默認的控制器 application.dispatcher.defaultAction String index 默認的動作 application.view.ext String phtml 視圖模板擴展名 application.modules String Index 聲明存在的模塊名, 請注意, 如果你要定義這個值, 一定要定義Index Module application.system.* String * 通過這個屬性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是請注意只有PHP_INI_ALL的配置項才可以在這裡被修改, 此選項從2.2.0開始引入

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved