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

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

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

    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會在配置的目錄下)尋找這個類文件!繼承

  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在追求極致效率,架構極簡的同時,須要咱們一點一點針對項目去完善,極簡的設計帶來明朗清晰的開發思路

相關文章
相關標籤/搜索