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在追求极致效率,架构极简的同时,须要咱们一点一点针对项目去完善,极简的设计带来明朗清晰的开发思路

相关文章
相关标签/搜索