PHP - Yaf的介绍

Yaf是一个C语言编写的PHP框架

Yaf的特点

剑的三层境界:一是手中有剑,心中亦有剑;二是手中无剑,心中有剑;三是手中无剑,心中亦无剑

在和其他用PHP写的PHP框架来比的话, Yaf就是剑的第二层境界. 框架不在你手中, 而在PHP的"心"中.

目前PHP的框架层出不穷, 其中不乏很多优秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等. 但在这繁多的框架也就造成了公司内多种框架的业务产品. 这些框架之间的不同, 也就导致了多种版本的类库, 框架, 约定, 规范,,,,

那么, 为什么现在开源社区没有一个成熟的用PHP扩展开发的框架呢?

用PHP扩展写PHP框架的难点

  1. 难于开发. 要完成一个PHP扩展的PHP框架, 需要作者有C背景, 有PHP扩展开发背景, 更要有PHP框架的设计经验.
  2. 目标用户群小. 现在国内很多中小型站都是使用虚拟主机, 并不能随意的给PHP添加扩展, 所以这些大部分的中小型企业, 个人博客的用户就无法使用.
  3. 维护成本高. 要维护PHP扩展, 不仅仅需要精通于C的开发和调试, 更要精通于Zend API, 并且升级维护的周期也会很长.

那既然这样, 为什么还要用PHP扩展来开发框架呢, 或者说, 这可行么?

用PHP扩展写PHP框架的可行性

  1. 扩展逻辑相对比较稳定, 一般不易变化. 把它们抽象出来, 用扩展实现, 不会带来额外的维护负担.
  2. 框架逻辑复杂, 自检耗时耗内存都比较可观, 而如果用扩展来实现, 就能大幅减少这部分对资源的消耗.

Yaf的优点

天下武功无坚不破,唯快不破

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

1.3. 流程图

Yaf提供了完善的API, 并支持Bootstrap和插件机制. 整体流程图如下:


更多干货,长按识别关注

尽在phpeveryday

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2015-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

ELK之Logstash简单介绍 转

https://www.elastic.co/products/logstash

1055
来自专栏杨建荣的学习笔记

sysbench压测MyCAT的shell脚本

中间件MyCAT自己之前也简单测试过,总结过。最近做分布式测试,我大体分了三个阶段: 一.环境部署,MHA和MyCAT的融合,读写分离 二.sharding策...

3177
来自专栏杨建荣的学习笔记

Oracle跨平台迁移的简单总结(r10笔记第91天)

前段时间测试了一下GoldenGate,结合我之前的一些尝试,对于小机环境的迁移,思路是逐步清晰了起来。 需求的核心是跨平台迁移数据库,最好能够升级到新的版本,...

32213
来自专栏PHP技术

切到 PHP7,我们是如何节省一百万美元的?

原文出处: Badoo 译文出处:开源中国 介绍 我们(Badoo)成功把应用迁移到了php7上面(数百台机器的集群),而且运行的很好,据说我们是第...

3065
来自专栏IT笔记

微服务化的基石——持续集成

在很多微服务化的文章中,很少会把持续集成放在第一篇,因为大多数的文章都会将如何拆的问题,例如拆的粒度,拆的时机,拆的方式。

3728
来自专栏博岩Java大讲堂

Java虚拟机--虚拟机发展史

3035
来自专栏程序你好

Java微框架的兴起,流行微服务框架点评

随着微服务和轻量级REST API的日益流行,我们目睹了Java的另一个趋势:Java微框架的崛起。Javalin, Micronaut, Spark 和其他很...

934
来自专栏Crossin的编程教室

【每周一坑】3道练习题

如题图所示,今天把论坛(crossin.me)的服务器迁移到一个很萌的云服务上,速度还可以。欢迎大家常来。 这里再次感谢 aresli 同学提供的服务器,让论坛...

33517
来自专栏BestSDK

Google开源Abseil,深度支持C++和Python

Abseil 已在 Google 历经十多年的开发,它的目的是为 Google 编程人员在各种项目上的工作需求提供支持,这些项目包括 Protocol Buff...

3396
来自专栏ThoughtWorks

别再加端到端集成测试了,快换契约测试吧 | 洞见

正如大家所知,最初QA都是手动执行测试用例,开发人员每修改一个版本,QA就要手动测试一遍,随着功能的不断增加,手动测试重复的工作量越来越大。为了解脱QA重复性劳...

3185

扫描关注云+社区