Yaf安裝/配置(Windows)

yaf的官方文檔

http://www.laruence.com/manual/index.html

  • 推薦

http://php.net/manual/en/book.yaf.php

環境

  • Apache 2.4.37
  • php 7.2.12

yaf配置

  • 使用yaf要開啓php的yaf擴展(擴展模塊),下載:http://pecl.php.net/package/yaf
    在這裏插入圖片描述
  • 我們需要慎重選擇版本,先編寫程序並在瀏覽器中運行,查看Architecture和Thread Safety。Thread Safety爲enable時,選擇TS版本,否則選擇NTS版本。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<?php
	phpinfo();
?>
</body>
</html>

在這裏插入圖片描述

  • 下載解壓後,複製php_yaf.dll文件,將其拷貝到php的ext文件夾(主要存放擴展庫)下。
    在這裏插入圖片描述
  • 打開php配置文件php.ini,Ctrl+F尋找extension,新增一行:
extension=php_yaf.dll
//此處要根據你的php.ini中extension的書寫規則
//或者extension=yaf
  • 重啓apache,查看phpinfo(),此時可以看到yaf的配置信息。
    在這裏插入圖片描述
  • 到此結束。

Yaf定義的常量

常量(啓用命名空間後的常量名) 說明
YAF_VERSION(Yaf\VERSION) Yaf框架的三位版本信息
YAF_ENVIRON(Yaf\ENVIRON Yaf的環境常量, 指明瞭要讀取的配置的節, 默認的是product
YAF_ERR_STARTUP_FAILED(Yaf\ERR\STARTUP_FAILED) Yaf的錯誤代碼常量, 表示啓動失敗, 值爲512
YAF_ERR_ROUTE_FAILED(Yaf\ERR\ROUTE_FAILED) Yaf的錯誤代碼常量, 表示路由失敗, 值爲513
YAF_ERR_DISPATCH_FAILED(Yaf\ERR\DISPATCH_FAILED) Yaf的錯誤代碼常量, 表示分發失敗, 值爲514
YAF_ERR_NOTFOUND_MODULE(Yaf\ERR\NOTFOUD\MODULE) Yaf的錯誤代碼常量, 表示找不到指定的模塊, 值爲515
YAF_ERR_NOTFOUND_CONTROLLER(Yaf\ERR\NOTFOUD\CONTROLLER) Yaf的錯誤代碼常量, 表示找不到指定的Controller, 值爲516
YAF_ERR_NOTFOUND_ACTION(Yaf\ERR\NOTFOUD\ACTION) Yaf的錯誤代碼常量, 表示找不到指定的Action, 值爲517
YAF_ERR_NOTFOUND_VIEW(Yaf\ERR\NOTFOUD\VIEW) Yaf的錯誤代碼常量, 表示找不到指定的視圖文件, 值爲518
YAF_ERR_CALL_FAILED(Yaf\ERR\CALL_FAILED) Yaf的錯誤代碼常量, 表示調用失敗, 值爲519
YAF_ERR_AUTOLOAD_FAILED(Yaf\ERR\AUTOLOAD_FAILED) Yaf的錯誤代碼常量, 表示自動加載類失敗, 值爲520
YAF_ERR_TYPE_ERROR(Yaf\ERR\TYPE_ERROR) Yaf的錯誤代碼常量, 表示關鍵邏輯的參數錯誤, 值爲521

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.environ配置環境名稱,本地開發develop、測試環境test、生產環境product。
  • 配置除了節之外,節和節之間還有繼承關係。例如[develop : common]就表示develop的配置會繼承common的配置。
[common]
; 通用配置
 
[product : common]
; 生產環境配置
 
[test : common]
; 測試環境配置
 
[develop : common]
; 開發環境配置
  • 常用的四個配置選項爲:yaf.environ、yaf.library、yaf.use_namespace、yaf.use_spl_autoload。
  • yaf.library是多項目使用同一個類庫時,一次修改多次使用,實現類庫複用。
  • 在開啓yaf.cache_config的情況下, Yaf會使用INI文件路徑作爲Key, 這就有一個陷阱,就是如果在一臺服務器上同時運行倆個應用, 那麼它們必須不能使用同一個路徑名下的INI配置文件, 否則就會出現Application Path混亂的問題。 所以, 儘量不要使用相對路徑。

Yaf配置示例

  • php.ini文件中做如下配置
;yaf
extension=php_yaf.dll
//此處要根據你的php.ini中extension的書寫規則
;extension=yaf
yaf.environ="product"
  • 設置運行環境,在項目中可以通過ini_get(‘yaf.environ’)獲取環境參數,進而取到相應節的配置。

生成框架目錄結構

  • 下載:https://github.com/laruence/yaf/tree/php5
  • 解壓後打開tools目錄下的cg文件夾,Win+R輸入cmd打開命令行,切換到該目錄下,執行(sample是項目名稱,可自定義):
    在這裏插入圖片描述
  • 回車後出現“DONE”說明執行成功,此時cg下的output文件中中出現sample項目(初始版yaf):
    在這裏插入圖片描述
  • 將sample項目剪切到服務器的htdocs目錄下,運行“http://localhost:88(端口號默認80)/sample/index.php”,出現“Hello World! I am Stranger”即爲成功。
    在這裏插入圖片描述

HelloWorld

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章