当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

yaf-lib

PHP应用开发框架
授权协议 未知
开发语言 PHP
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 卜泓
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

yaf-lib 基于 yaf 的应用开发框架, 简单的mvc中间层继承补充, 常用缓存、数据库等驱动类, 添加widget组件模块,及layout插件, rpc服务化,支持hprose、yar等, 支持xhprof性能调试。

requirement

  • php 5.3+

  • php-yaf 2.3.3

  • phpredis 2.2.7

  • memcache 2.2.7

  • zmq 1.1.2

  • xapian-bindings 1.2.21

  • scws 1.2.2

  • swoole 1.7.17

  • hprose-php 1.5.4

  • php-yar 1.2.4

  • xhprof 0.9.4

src/controllers

Madclient

http://localhost/madclient Madclient是php实现的MadzMQ消息队列的客户端,通过msg协议与madbroker通信,异步发送消息。

src/bootstrap

bootstrap是yaf的引导程序,这里进行拆分,如果工作的web进入cgi模式,如果工作在命令行进入cli模式。

src/library

Controller

Controller类继承Yaf_Controller_Abstract,控制器可以选择性的继承这个类,在类中实现了,layout、widget等初始化。

Sontroller

Sontroller类继承Yaf_Controller_Abstract,工作在cli模式下。

Model

Model类是数据层的抽象类,所有数据对象都可以继承它,Model可以从不同的data_center分发数据。

Widget

Widget类是组件的基类,widgets目录下的组件类都继承它,widgets/views目录是相应组件的view。 views中通过$widget方法调用组件

$widget('IndexWidget',
    array('class_key'=>'item_condition',
        'output'=>'html',
        'query'=>array(),
        'assist_data'=>array(
            'one'=>'one'
        )
    )
);

Zmq_Msg

Zmq_Msg是基于ZeroMQ的一种简单msg消息协议的php实现

Zmq_Kvmsg

Zmq_Kvmsg是基于ZeroMQ的一种简单key-value消息协议的php实现

Core_Processpool

Core_Processpool类封装了一个进程池。

System_Mongo

System_Mongo类封装了mongodb的客户端接口。

  • conn 用于连接mongo

  • selectDB 选择数据库

  • selectCollection 选择文档

  • findOne 获取一条数据

  • find 获取数据列表

  • select 选择数据可以排序或区间

  • insert 添加数据

  • update 更新数据

  • close()关闭连接

System_Socket

System_Socket类对网络socket进行封装

System_Memcache

System_Memcache类封装了Memcached的客户端接口

  • ::set 设置缓存

  • ::get 获取缓存

  • ::delete 删除缓存

  • ::flush 清空

  • ::increment 原子计数加

  • ::decrement 原子计数减

System_Redis

System_Redis类封装redis客户端驱动

System_Mysqlpdo

System_Mysqlpdo类封装了pdo_mysql的操作接口

  • ::bind

  • ::bindmore

  • ::query

  • ::lastInsertId

  • ::column

  • ::row

  • ::single

System_Log

System_Log类封装了日志处理类

System_Sort

System_Sort类封装了一些经典得排序算法

  • ::insertion 插入排序

  • ::selection 选择排序

  • ::bubble    冒泡排序

  • ::merge     归并排序

Search_Segment

Search_Segment类 中文分词

  • init         分词器初始化

  • close        关闭

  • query        获取原数据列表

  • queryOne     获取单个原数据

  • cutQuery     切分原数据

  • cutString    切分字符串

Search_Index

Search_Index类 用于添加索引

  • setIdPrefix

  • add         建立索引数据

  • alert       更新索引数据

  • delete      删除索引数据

Search_Match

Search_Match类用于匹配搜索结果

  • call    执行匹配

Search_Database

Search_Database类 用于查询索引数据库中的原数据

  • get_doccount    获取文档总数

  • get_data        获取单个文档原数据

  • get_termlist    获取单个文档语词

  • select          获取数据列表

Search_Config

Search_Config类 可以根据配置处理搜索结果

  • getApp       获取app

  • getAppName   获取app名称

  • getTableName 获取标名称

  • formatTitle  格式化标题

  • formatDetail 格式化详情

  • formatUrl    格式化地址栏

  • formatImage  格式化图片

bin

main

服务端程序,根据入口文件名称找到MainController,然后执行mainAction方法; yaf的CLI模式的入口文件,在CLI模式下可以开发强大的服务端程序

./bin/main

madserver

madserver是php实现的MadzMQ消息队列的服务端,其作为订阅者订阅来自madbroker的,协议为kvmsg.

./bin/madserver

hprose_swoole_tcp.php

rpc服务,tcp协议,支持方法、对象方法、异步等调用 对象方法调用:

//服务端代码$server->add(new TestModel(),'','test');//客户端调用$client->test->one();

src/tools

xapian

  • xapian-bindings 1.2.21

xhprof

  • xhprof-0.9.4

hprose-php

  • hprose-php 1.5.4

  • ==Yaf开发指南== ===说明=== ;本文档仅作为[http://yaf.laruence.com/manual/ http://yaf.laruence.com/manual/]的补充,也会指出一些在使用中容易忽略的地方,以及一些使用技巧 ===入口文件===   <?php define('IN_DEBUG',true); IN_DEBUG ? error_reporting(E_A

  • 1.优缺点     优点:  用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享. 高性能的视图引擎. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.

  • wget http://pecl.php.net/get/yaf-3.0.6. --2018-03-08 15:39:57-- http://pecl.php.net/get/yaf-3.0.6.tgz Resolving pecl.php.net... 104.236.228.160 Connecting to pecl.php.net|104.236.228.160|:80... conne

  • 经验的误区 fdk-aac项目中并没有直接提供vs下的编译工程,也没有CmakeList 脚本。所以我凭经验判断,源码是需要在mingw环境下编译。正是这种直观,简单的判断,直接在编译上挖了个坑。 我用mingw很顺利编译出了libfdk-aac.a库,结果在链接到执行程序时出错了,错误如下: (fft.o) : fatal error LNK1143: 无效或损坏的文件: 没有 COMDAT 0

  • 1.Yaf的library和model的文件命名规则和调用   1.1在项目中,往往需要封装一些,如redis,不同的产品需要用不同的库等等等,这就涉及到封装     1.在 Yaf 中,我们可以写一个单例模式的 redis 来提供一个入口,进行各个库(0-15)之间的实例的创建,然后在 Model 下面建立一个 BaseModel 来对接单例 Redis  的实例接口,然后各个模块的 Model

  • yaf支持namespace。在php.ini 中添加 yaf.namespace=1 就可以启动namespace 但是如果开了namespace就不能再使用非namespace的写法了。 <?php define('ROOT_PATH', realpath(dirname(dirname(__FILE__)))); define('APPLICATION_PATH', ROOT_P

  • 修改\application\Bootstrap.php文件的路由方法 public function _initRoute(Yaf_Dispatcher $dispatcher) { //在这里注册自己的路由协议,默认使用简单路由 //通过派遣器得到默认的路由器 $router = Yaf_Dispatcher::getInstance()->getRouter(); //i

 相关资料
  • 一个应用程序开发框架。作者实现了很多控件效果,方便其他开发者各取所需。所实现的效果包括:打分星星、响应点击动作、旋转按钮效果、根据文字多少改变大小的UILabel等等效果。 [Code4App.com]

  • 移动应用开发框架选型 2016 移动开发模式 移动开发主要分为原生模式(Native App)开发,混合模式(Hybrid App)开发,Web App模式。 1.1 Web APP Web App 指采用Html5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用。 优点: 1) 开发成本低 2) 更新快 3) 更新无需通知用户,不需要

  • 本文向大家介绍Node.js 服务器端应用开发框架 -- Hapi.js,包括了Node.js 服务器端应用开发框架 -- Hapi.js的使用技巧和注意事项,需要的朋友参考一下 Hapi.js 是一个用来构建基于 Node.js 的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他 Web 应用开发常用的功能。 示例代码: 附上github

  • 应用开发 PDF版下载 第一步:创建应用 进入管理后台-服务商-应用管理-创建应用 应用的基本信息: 信息项 要求及说明 应用Logo 应用的Logo,小于5M,640 * 640,在授权页会被用于展示。 应用名称 应用的名称,建议包含品牌名,2-8个字内 AppID 应用ID,系统分配,用于调用第三方应用相关接口 功能分类 应用提供的服务类型,如客户关系、团队协同、文化建设等。一个应用只能拥有一

  • 1.1. 应用开发 1.2. 应用概述 1.3. 工程结构 1.4. 开发者工具 1.4.1. 安装 1.4.2. 调试 1.4.3. 测试 1.5. 教程 1.1. 应用开发 应用开发包括如下介绍: 应用概述 工程结构 开发者工具 教程 1.2. 应用概述 RokidOS 的本地技能分为两类: 轻应用(LightApp) 本地应用(NativeApp) 轻应用,直接通过语音交互的守护进程(vui

  • Yaf

    Yaf 是一个 C 语言编写的 PHP 框架,Yaf 的特点: 用 C 语言开发的 PHP 框架,相比原生的 PHP,几乎不会带来额外的性能开销。 所有的框架类,不需要编译,在 PHP 启动的时候加载,并常驻内存。 更短的内存周转周期,提高内存利用率,降低内存占用率。 灵巧的自动加载。支持全局和局部两种加载规则,方便类库共享。 高性能的视图引擎。 高度灵活可扩展的框架,支持自定义视图引擎,支持插件

  • "One does not live by bread alone,but by every word that comes from the mouth of God" --(MATTHEW4:4) python开发框架 不管是python,还是php,亦或别的做web项目的语言,乃至于做其它非web项目的开发,一般都要用到一个称之为什么什么框架的东西。 框架的基本概念 开发这对框架的认识,由于

  • 想改进这个问题吗?更新问题,以便通过编辑这篇文章用事实和引用来回答。 我的公司想开发一个移动应用程序。Web应用程序、本机应用程序还是混合应用程序?他们其实不知道。在这种情况下,他们要求我对移动开发的开源框架(跨平台框架btw)进行一些研究(我不是移动开发专家)。我做到了。现在,我大致了解了实际存在的情况,并选择了其中的8个。 现在,我想要的是你的个人反馈(赞成/反对/喜欢/不喜欢/如果你留下了另