1. 背景

之前在面试新浪微博的时候,被问起一个问题,你会Yaf吗?这一问直接把我问懵圈了,

后来面试结束之后,去特地了解一下,发现不少国内公司都在使用,不少知名大厂都有广泛应用,其中包括腾讯,百度,新浪微博等.

(如果想进腾讯百度微博这类国内较为知名的公司,掌握Yaf将是个不错的加分项~)

但是由于Yaf(Yet Another Framework)是采用C语言 + Zend API编写,阅读起来着实费力,于是就萌生了翻译的念头.

2. 关于Yaf

Yaf我不多做介绍,一局话总结起来就是用C写的PHP Web高性能框架,有兴趣的同学可以自行先了了解一下(鸟哥的Yaf说明)

我们先来整理一下在用Yaf进行开发时,一般都会遇到几个常见的问题.

  1. 开发黑盒.在coding阶段,我们的IDE无法对Yaf相关函数进行补齐或者提示,开发流程处于一个黑盒下.
  2. 文档不全.对Yaf底层实现原理不甚了解,遇到问题通常只能去看零零碎碎的文档,如果文档也无法解决自己的问题,就显得非常束手无策,开发体验很糟糕.
  3. 源码阅读成本高.部分同学想通过阅读源码,彻底搞懂Yaf底层实现原理,但是由于Yaf是由C写的,以及源码实现里充斥着大量让人眼花缭乱的Zend API,对于大部分同学来说阅读成本相对较高.

IDE无法识别Yaf函数

3. 关于YAFPHP

3.1 简介

项目地址 : https://github.com/yinggaozhen/yaf-php

Yaf-PHP采用原生PHP对Yaf源码进行了逻辑重写,最大程度还原其相关实现逻辑.

由于采用了原生PHP重写,可达到抹平阅读能力,降低阅读成本的目的.在平常开发时,也可以作为IDE Helper进行引入,加快开发效率.

3.2 最终效果

废话不多说,我们先直接看最终效果图

IDE识别

方法识别

3.3 安装

> git clone https://github.com/yinggaozhen/yaf-php.git

3.4 快速使用

3.4.1 在PhpStorm引入

两种实现方法

左侧导航栏 `External Libraries` -> `Configure PHP Include Path` -> 添加`Yaf-PHP`文件路径 -> `apply`
菜单 `File` -> `Setting` -> `PHP` -> 添加`Yaf-PHP`文件路径 -> `apply`

3.4.2 在NetBeans引入

右击你的项目 -> `Properties` -> `PHP Include Path` -> `Add Folder..` -> 添加`Yaf-PHP`文件路径 -> `open`

3.5 目前支持/完成的功能

  • 支持IDE对Yaf相关的识别/自动填充
  • 同时支持PSR-0以及PSR-4引入方式
  • 所有Yaf公有方法均以@link形式添加官方文档链接

3.6 正在开发的功能

  • 目前以通过官方源码80%的测试用例,虽然目前仍在翻译中
  • 支持指定版本下的调试功能

4 小结

传送门 : https://github.com/yinggaozhe...

这个项目断断续续用了业余开发了将近有小半年了,目前仍在开发中,如果的大家有什么建议或者意见,可以在直接issue提给我,或者私信给我~

最后的最后,如果你觉得项目还不错,别忘记star/fork~ 比心~

最后的最后,如果你觉得项目还不错,别忘记star/fork~ 比心~

最后的最后,如果你觉得项目还不错,别忘记star/fork~ 比心~


yinggaozhen
42 声望2 粉丝