1.Yaf的library和model的文件命名规则和调用

  1.1在项目中,往往需要封装一些,如redis,不同的产品需要用不同的库等等等,这就涉及到封装

    1.在 Yaf 中,我们可以写一个单例模式的 redis 来提供一个入口,进行各个库(0-15)之间的实例的创建,然后在 Model 下面建立一个 BaseModel 来对接单例 Redis  的实例接口,然后各个模块的 Model 类在继承这个 BaseModel 即可实现.

    2.那么,我们一般的习惯是根据 命名空间\文件路径 来实例化类或者引入,比如:

    

 $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
} }

      然后 实例化的时候直接

 $object = new Db_Redis();

      如果是静态

 $object = Db_Redis::getInstance();

      3.3 这样 Yaf 会自动在library(如果配置了ap.library会在配置的目录下)寻找这个类文件!

  2.1 Model下的类文件的调用方法

    1.如 想在 Model 下面建立 Chat.php ,文件中类名必须是 ChatModel ,

 class ChatModel extends BaseModel
{
public function __construct(){
//TODO : something
} }

    2.要是想建立实例化 需要直接使用该文件的 类名称 如:ChatModel 即可

 $object = new ChatModel();

    3.静态同Library一致

总结:Yaf在追求极致效率,架构极简的同时,需要我们一点一点针对项目去完善,极简的设计带来明朗清晰的开发思路

Yaf学习(三)----Yaf类库Library和Model的命名规则的更多相关文章

  1. yaf学习之——yaf安装

    yaf的github源码地址 https://github.com/laruence/yaf 第一步: 下载dll扩展: http://pecl.php.net/package/yaf/2.3.5/w ...

  2. Yaf学习(二)----Yaf初体验

    1.hello world 1.1 用yaf输出hello world 1.首先配置host,nginx 2.host不用多说,指向虚拟机IP即可 1.2 重点说一下nginx (只说server块) ...

  3. yaf学习资料

    yaf学习资料 文档 鸟哥的官方文档 Yaf框架结合PHPUnit的集成测试 php yaf框架扩展实践六--单元测试.计划任务.第三方库等 php yaf框架扩展实践一--配置篇 yaf实战例子 y ...

  4. Lnmp上安装Yaf学习(一)

    今天学习Lnmp上面如何安装Yaf流程 一.安装Lnmp 集成环境 访问路径:https://lnmp.org/install.html 这里我安装稳定版lnmp 1)   wget -c http: ...

  5. php 安装yaf扩展和yaf框架

    一.安装yaf扩展(windows安装) 1.查看你电脑安装的开发环境(phpinfo()的信息),查找 "Zend Extension Build"和"PHP Exte ...

  6. Protocol Buffer学习教程之类库应用(四)

    Protocol Buffer学习教程之类库应用(四) 此教程是通过一个简单的示例,给C++开发者介绍一下如何使用protocol buffers编程,主要包括以下几部分: 定义一个.proto文件 ...

  7. EntityFramework Core 学习系列(一)Creating Model

    EntityFramework Core 学习系列(一)Creating Model Getting Started 使用Command Line 来添加 Package  dotnet add pa ...

  8. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  9. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

随机推荐

  1. Android Activity中状态保存机制

    在Activity中保存用户的当前操作状态,如输入框中的文本,一般情况下载按了home键后,重新进入文本框中的东西会丢下,所以我们要保存当前页面信息,如在写短信的时候接到一个电话,那么当你接电话的时候 ...

  2. Web测试中定位bug方法

    在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出在那里,是测试人员需要掌握的,可以简单的使用浏览器自带开发者工具 ...

  3. hibernate 性能优化之 1+N 问题

    1. 注意 session.clear()的运用,尤其在不断分页查询的时候 a) 在一个大集合中进行遍历,遍历 msg,去除其中的含有敏感字样的对象 b) 另外一种形式的内存泄漏 面试题:Java 有 ...

  4. 使用命令行执行.sql文件

    用微软自带的sqlcmd工具,可以导入执行.以SQL Server 2008R版本为例: 第一步:Win+R 键入:cmd 命令,开启命令行工具: 第二步:键入:cd C:\Program Files ...

  5. JS实现“双色球”

    需求: 双色球玩法简单介绍: “双色球”彩票投注区分为红色球号码区和蓝色球号码区.每注投注号码由6个红色球号码和1个蓝色球号码组成.红色球号码从1--33中选择:蓝色球号码从1--16中选择.程序要求 ...

  6. Oracle彻底杀掉进程

    kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...

  7. 如何读写json文件

    代码如下: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io. ...

  8. python入门23 pymssql模块(python连接sql server增删改数据 )

    增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 ''' dinghanhua sql server增删改 ''' import py ...

  9. C语言 条件编译(if )

    #include <stdio.h> #define NUM -1 int main(int argc, const char * argv[]) { #if NUM > 0 pri ...

  10. hdu-1492 The number of divisors(约数) about Humble Numbers---因子数公式

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1492 题目大意: 给出一个数,因子只有2 3 5 7,求这个数的因子个数 解题思路: 直接求出指数即 ...