yaf简介--学习yaf
时间:2012-12-4 作者:smarteng 分类: yaf开发
今天我们来学习一下yaf开发,
先说一下yaf是什么吧,yaf是php扩展的框架,看看官方的说法吧:
Yaf是一个C语言编写的PHP框架,
目前PHP的框架层出不穷, 其中不乏很多优秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等. 但在这繁多的框架也就造成了公司内多种框架的业务产品. 这些框架之间的不同, 也就导致了多种版本的类库, 框架, 约定, 规范,,,,
那么, 为什么现在开源社区没有一个成熟的用PHP扩展开发的框架呢?
用PHP扩展写PHP框架的难点
难于开发. 要完成一个PHP扩展的PHP框架, 需要作者有C背景, 有PHP扩展开发背景, 更要有PHP框架的设计经验.
目标用户群小. 现在国内很多中小型站都是使用虚拟主机, 并不能随意的给PHP添加扩展, 所以这些大部分的中小型企业, 个人博客的用户就无法使用.
维护成本高. 要维护PHP扩展, 不仅仅需要精通于C的开发和调试, 更要精通于Zend API, 并且升级维护的周期也会很长.
那既然这样, 为什么还要用PHP扩展来开发框架呢, 或者说, 这可行么?
用PHP扩展写PHP框架的可行性
扩展逻辑相对比较稳定, 一般不易变化. 把它们抽象出来, 用扩展实现, 不会带来额外的维护负担.
框架逻辑复杂, 自检耗时耗内存都比较可观, 而如果用扩展来实现, 就能大幅减少这部分对资源的消耗.
yaf是用C语言写的php扩展,这个在运行的速度上没的说,绝对会比其他php写的php框架效率高很多。
smarteng
人生就流星,虽然转瞬即逝,但也有永恒。
- 使用Erlang的OTP框架创建应用
- php 使用curl模拟登录discuz以及模拟发帖
- 腾讯QQ、阿里旺旺、淘宝、MSN在线状态代码生成
- 新浪微博错误代码解析
- erlang程序设计笔记
- 《HTML 5与CSS 3权威指南》权威的HTML5与CSS3实战教程
- dedecms修改数据库密码配置文件
- 服务器优化小记--Etag和Expires
- 在PHP5中使用PHPMailer发送邮件
- PHP中冒号、endif、endwhile、endfor介绍
- PHP框架——ThinkPHP
- QQ登陆成功返回openId后与网站绑定
- Mediawiki的配置和修改方法
- 使用Golang的官方mock工具--gomock、mockgen
- 用yaf-codes-generator 生成代码
- MacOs 电脑关闭/打开IPV6
- MySQL中datetime和timestamp的区别
- C++声明结构
- 如何保证数据库和缓存的一致性
- 优雅的golang日期时间处理库go-carbon
- API接口纪要
- 解析 Golang 测试(11)- 模糊测试
- 解析 Golang 测试(10)- 什么是好的单测
- 解析 Golang 测试(9)- 一篇文章搞懂 testify
- 解析 Golang 测试(8)- gomonkey 实战
- 解析 Golang 测试(7)- 如何针对 Redis 进行 Fake 测试
- 解析 Golang 测试(6)- 如何针对 MySQL 进行 Fake 测试
- 解析 Golang 测试(5)- MySQL 经典 mock driver—— sqlmock
- 解析 Golang 测试(4)- 一篇文章教你分清 Mock,Stub,Fake
- 解析 Golang 测试(3)- goconvey 实战
- 2023年11月(1)
- 2023年10月(1)
- 2023年3月(2)
- 2023年2月(1)
- 2022年12月(1)
- 2022年9月(13)
- 2022年8月(5)
- 2022年7月(9)
- 2022年6月(2)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(2)
- 2021年12月(1)
- 2021年11月(14)
- 2021年10月(2)
- 2021年9月(111)
- 2015年3月(1)
- 2014年5月(4)
- 2014年4月(18)
- 2014年1月(1)
- 2013年11月(2)
- 2013年7月(1)
- 2013年6月(1)
- 2013年3月(13)
- 2013年2月(3)
- 2013年1月(1)
- 2012年12月(8)
- 2012年11月(8)
- 2012年10月(1)
- 2012年9月(13)
- 2012年8月(4)
- 2012年6月(2)
- 2012年5月(10)
- 2012年4月(13)
- 2012年3月(9)
- 2012年2月(8)
- 2011年11月(1)
- 2011年8月(9)
- 2011年7月(8)
- 2011年6月(8)
- 2011年5月(7)
- 2011年4月(19)
- 2011年3月(15)
- 2011年2月(8)
- 2011年1月(9)
- 2010年12月(2)
- 2010年11月(2)
- 2010年10月(2)
- 2010年9月(8)
- 2010年8月(9)
- 2010年7月(1)
- 2010年6月(9)
- 2010年5月(5)
- 2010年1月(7)
- 2009年12月(21)
- 2009年11月(29)
- 2009年10月(100)
- 2009年8月(1)
- 2009年7月(15)
- 2009年6月(52)