1.在 Yaf 中,咱們能夠寫一個單例模式的 redis 來提供一個入口,進行各個庫(0-15)之間的實例的建立,而後在 Model 下面創建一個 BaseModel 來對接單例 Redis 的實例接口,而後各個模塊的 Model 類在繼承這個 BaseModel 便可實現.php
2.那麼,咱們通常的習慣是根據 命名空間\文件路徑 來實例化類或者引入,好比:redis
1 $object = new Path\showPath();
這就表明着實例化了 Path 下的 showPath 類文件,可是在 Yaf 中並非這樣,若是這樣書寫,Yaf 報錯,提示文件在XXX路徑下找不到架構
3.這是由於 Yaf 的ap.library的設置路徑(默認就是在application/library目錄),若是沒有設置(具體設置看手冊),好比 咱們想寫一個 Db 下面的 Redis類文件, 須要這麼作app
3.1 首先,咱們在 library 下面新建文件夾 Db 而後 建立 Redis.php 文件,spa
3.2 重點來了 Redis.php 文件中的類名稱 必須是 Db_Redis 也就是說 必須是 路徑_文件名 的格式,設計
<?php class Db_Redis { private static $_instance = []; private $redis; private $host; private $port; private $auth; public function index(){ //TODO : do something } }
而後 實例化的時候直接 code
1 $object = new Db_Redis();
若是是靜態blog
1 $object = Db_Redis::getInstance();
3.3 這樣 Yaf 會自動在library(若是配置了ap.library會在配置的目錄下)尋找這個類文件!繼承
1.如 想在 Model 下面創建 Chat.php ,文件中類名必須是 ChatModel ,接口
1 class ChatModel extends BaseModel 2 { 3 public function __construct(){ 4 //TODO : something 5 } 6 7 }
2.要是想創建實例化 須要直接使用該文件的 類名稱 如:ChatModel 便可
1 $object = new ChatModel();
3.靜態同Library一致