从今天开始,给大家讲解下yaf框架,讲解之前肯定要了解下yaf是个什么东西,当然,从标题我们已经知道yaf是个PHP框架了,也许大家对于PHP框架并不陌生,一般PHP程序员用过的框架至少有一两个吧,国内用的比较多的有ThinkPHP,YII之类的,用Yaf的还真不多。原因个人感觉有两个,一个是刚推广不久,第二个就是门槛高,让新手无从下手,大多数新手更喜欢用那些使用广泛,教程文档多的框架

首先引用yaf的作者对yaf的一个简单引述:

随着PHP的发展, PHP框架层出不穷, 但到底用不用PHP框架, 还存在很大的争论, 反对者认为使用框架会降低性能, 经常举例的就是Zend Framework. 而支持者则认为,采用框架能提高开发效率, 损失点性能也是值得的.
而这些也正是公司内框架种类繁多的一个原因, 有的项目组为了性能而选择某些框架, 而另外一些项目组, 则为了更好的封装选择了另外的框架
那, 有没有俩全的办法呢? 也就是说, 有没有那么一个框架, 既不会有损性能, 又能提高开发效率呢.
Yaf, 就是为了这个目标而生的.
Yaf有着和Zend Framework相似的API, 相似的理念, 而同时又保持着对Bingo的兼容, 以此来提高开发效率, 规范开发习惯. 本着对性能的追求, Yaf把框架中不易变的部分抽象出来,采用PHP扩展实现(c语言),以此来保证性能.在作者自己做的简单测试中, Yaf和原生的PHP在同样功能下, 性能损失小于10%, 而和Zend Framework的对比中, Yaf的性能是Zend Framework的50-60倍.

可以看出,Yaf框架一个最大的优势就是快,他是用C语言写的,和原生PHP一样,速度快,接近原生的PHP,如同作者而言,剑的三层境界:一是手中有剑,心中亦有剑;二是手中无剑,心中有剑;三是手中无剑,心中亦无剑,在和其他用PHP写的PHP框架来比的话, Yaf就是剑的第二层境界. 框架不在你手中, 而在PHP的"心"中.

官方文档对Yaf的优点做了以下总结

1. 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 
2. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 
3. 更短的内存周转周期, 提高内存利用率, 降低内存占用率. 
4. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享. 
5. 高性能的视图引擎. 
6. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等. 
7. 内建多种路由, 可以兼容目前常见的各种路由协议. 
8. 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失. 
9. 在框架本身,对危险的操作习惯做了禁止. 
10. 更快的执行速度, 更少的内存占用.

参考来源:

关于Yaf的一些说明
http://www.lai18.com/content/407120.html

Yaf框架简介
http://www.lai18.com/content/407123.html

Yaf零基础学习总结1-Yaf框架简介的更多相关文章

  1. Yaf零基础学习总结3-Hello Yaf

    Yaf零基础学习总结3-Hello Yaf 上一次我们已经学习了如何安装yaf了,准备工作做好了之后我们来开始实际的编码了,码农都知道一个经典的语句就是“Hello World”了,今天我们开始入手Y ...

  2. Yaf零基础学习总结2-Yaf框架的安装

    接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...

  3. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  4. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

  5. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  6. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  7. [原]零基础学习视频解码之android篇系列文章

    截止今天,<零基础学习视频解码系列文章>.<零基础学习在Android进行SDL开发系列文章>以及<零基础学习视频解码之android篇>系列文章基本算是告一段落了 ...

  8. [iOS]关于零基础学习iOS开发的学习方法总结

    关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...

  9. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...

随机推荐

  1. TortoiseSVN 版本回滚

    尝试用TortoiseSVN进行版本回滚,回滚到的版本和实际的内容有出入,可能是点了太多次给点乱了,囧~ 不过发现一个比较靠谱的方法,如下: 右键点击文件TortoiseSVN->showlog ...

  2. APPLICATION ERROR #1502 .

    mantisbt出现1502问题解决:引起问题的原因:当提交的问题有分类,此时删除此分类,就会出现下面的情况.问题描述:APPLICATION ERROR #1502 没有找到类别.请使用浏览器的“返 ...

  3. php与ascii码

    首先 简单说一下历史,ascii码最开始是美国人搞出来的,用来干什么呢?我们知道,计算机只知道0和1,如果我们要计算机识别除了01之外的字符,例如 'a',我们要先告诉计算机‘1100001’就是'a ...

  4. PIC32MZ tutorial -- Key Debounce

    Today I accomplish a application on PIC32MZ EC Starter Kit. The feature of application is to light u ...

  5. 简洁既是美—用while语句复制数组

    简洁既是美,程序员应尽量尝试编写简洁的表达式,争取用简单的代码来实现更多的功能,当然,这也要看情况了(有时候也得考虑程序运行的时间嘛). 在阅读C++Prime Plus到while语句时有一个讲一个 ...

  6. UICollectionView布局功能

    UIConllectionView和UITableView类似,也是展示数据,但不同于UITableView那种规则的布局,UICollectionView可以实现不规则的布局,即瀑布流. 创建UIC ...

  7. vc++ 如何添加右键弹出菜单

    一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图标 2.于菜单编辑器内编辑菜单 四.添加代码(红色部分) void CCM ...

  8. word 批量删除书签

    打开word    按住alt+F11 进入vba 界面 Sub test() Dim MyBk As Bookmark For Each MyBk In ActiveDocument.Bookmar ...

  9. LeetCode:Longest Palindromic Substring 最长回文子串

    题目链接 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...

  10. Eclipse中Maven项目添加jar包

    各个标签的含义如下: Overview:显示maven项目的一些基本信息Dependencies:添加jar包的页面Plugins:添加maven插件的页面.比如tomcat-maven-plugin ...