Yaf學習(三)----Yaf類庫Library和Model的命名規則


1.Yaf的library和model的文件命名規則和調用

  1.1在項目中,往往需要封裝一些,如redis,不同的產品需要用不同的庫等等等,這就涉及到封裝

    1.在 Yaf 中,我們可以寫一個單例模式的 redis 來提供一個入口,進行各個庫(0-15)之間的實例的創建,然后在 Model 下面建立一個 BaseModel 來對接單例 Redis  的實例接口,然后各個模塊的 Model 類在繼承這個 BaseModel 即可實現.

    2.那么,我們一般的習慣是根據 命名空間\文件路徑 來實例化類或者引入,比如:

    

1 $object = new Path\showPath();

    這就代表着實例化了 Path 下的 showPath 類文件,但是在 Yaf 中並不是這樣,如果這樣書寫,Yaf 報錯,提示文件在XXX路徑下找不到

    3.這是因為 Yaf 的ap.library的設置路徑(默認就是在application/library目錄),如果沒有設置(具體設置看手冊),比如 我們想寫一個 Db 下面的 Redis類文件, 需要這么做

      3.1 首先,我們在 library 下面新建文件夾 Db 然后 創建 Redis.php 文件,

      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
 }   

}

 

      然后 實例化的時候直接

1 $object = new Db_Redis();

      如果是靜態

1 $object = Db_Redis::getInstance();

      3.3 這樣 Yaf 會自動在library(如果配置了ap.library會在配置的目錄下)尋找這個類文件!

  2.1 Model下的類文件的調用方法

    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一致

總結:Yaf在追求極致效率,架構極簡的同時,需要我們一點一點針對項目去完善,極簡的設計帶來明朗清晰的開發思路

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM