文档章节

zendAPI 项目开发计划

zendapi
 zendapi
发布于 2017/09/11 15:33
字数 1056
阅读 37
收藏 0

因为时间有限,开发在每天的上午6点到9点,晚上9点到12点以及周末,所以项目周期可能比正常的要长一点,我的计划如下:

#7月到8月完成对 zend engine 的一些核心数据库的封装

这个阶段主要针对 zend engine 一些常用的数据接口做一些面向对象的封装,比如用的最多的 HashTable, zendAPI 会为其提供一个STL风格的迭代器进行数据访问,常见的 HashTable 的访问语义接口,方面开发者的日常调用, 避免用到类型不安全的宏调用。

#8月到9月初步完成函数与面向对象语义这部分接口的封装

这部分主要让开发者方便的往 zend engine 挂载自己定义的函数,变量和类等等,将一些日常的参数获取以及返回值进行标准化,让书写自定义函数的时候只关心自己的业务逻辑,让这部分代码远离 zend engine 底层的细节。在面向对象这一块跟函数的思想也差不多,主要让开发者创建自己的名称空间,自定义的类更加的简明,不用太关心底层一些繁琐的细节, zendAPI 到时候会提供对 PHP 版本号的兼容,所以对以后的升级,可以让您的扩展最大限度的避免修改。

#9月到10月完成全局资源的统一访问接口的封装

PHP 从最开始的时候带入了一些很不好的全局变量和资源,其实这个并不是很好,会让程序维护性大大降低。但是历史已经已经无法改变,我们只能以一种相对比较安全的方式去使用它,慢慢的淘汰它,在 zendAPI 中我们将对其提供一些统一的访问接口。

#10月到11月完成 zend engine 启动过程的封装

扩展是不能脱离 zend engine 而存在的,我们必须将我们开发的扩展挂载到 zend engine 内核上去,zend engine 有自己的一套启动流程,也有自己明确的生命周期的概念并对外提供了很多的钩子函数和大量的宏去帮组我们完成这个工作,但是相对来说还是相当繁琐和复杂的,而我们有时候并不一定需要陷入这种细节之中浪费我们的宝贵的开发时间,所以我们在 zendAPI 中会对这个过程进行一些封装,尽量去以一种面向对象的方式去简化整个启动过程。

#11月到12月使用手册与例子文档的完善

我从来都认为,一个好的开源项目,文档这部分很重要,甚至有时候比项目本身还重要,因为现在大家的节奏都比较快,没有时间对研究代码,一个项目如果有好的文档支持,会大大降低入门门槛,让更多的人去使用这个项目,才能让其发挥出价值。如果 zend engine 内核这方面如果做得好的话,估计也没有我们这个项目了。zendAPI 的文档主要在官网上进行提供,共有三个方面

  1. 使用手册
  2. API接口文档
  3. 开发博客

#12月到2018年1月完善软件打包发布流程

因为是暂时就我一个人开发,包括网站的维护,文档的书写,所以很多方面很欠缺,到这个阶段第一版的开发基本结束,我在这个阶段基本是完成打包脚本的优化和一些小工具的开发,比如生成项目结构的小程序。规范化版本号与版本发布流程,针对主流平台进行测试,提供相应的二进制包(rpm, deb)等等。

总的来说,这个对我来说挑战非常大,很多事情对我来说都是第一次,希望 zendAPI 能顺利的跟大家见面,谢谢。

© 著作权归作者所有

共有 人打赏支持
zendapi

zendapi

粉丝 10
博文 12
码字总数 9448
作品 1
程序员
私信 提问
加载中

评论(1)

乐皮
乐皮
支持 👍
使用5种编程语言开发PHP扩展

使用C语言开发 介绍参考链接:http://blog.csdn.net/heiyeshuwu/article/details/44267021 https://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/ 2. 使用C......

老查
2017/11/10
0
0
[研究] 深入PHP内核之ZendAPI扩展篇

PHP_NEW_EXTENSION(php_hello, php_hello.c, $ext_shared) 前面插一个很好笑的报道:“2009/02/27日新浪:首节战罢,火箭命中率27.8%对上骑士17.6%,篮板15对7,助攻4对1”,这是我看过最搞笑...

长平狐
2012/11/19
1K
0
zendAPI —— Zend Engine 的 C++ 封装

该项目是对 Zend Engine 的 C 接口使用 C++11 进行而面向对象的封装,从而屏蔽了底层 Zend Engine API 的接口复杂性,加快开发 PHP 扩展的效率。

两味真火
2017/09/09
34
0
10月新增开源项目:号称最快的 Node.js 应用框架来了

立冬已过,人们认为这是夏天的终结,冬天的开始。立,建始也;冬,终也,万物收藏也。不过在开源的世界里,开发者并不畏惧寒冷,对技术的不懈追求也未曾终结。 开源的世界总是精彩纷呈,十月...

编辑部的故事
2017/11/07
0
16
PHP-X —— ZendAPI 的 C++ 封装库(韩天峰)

可以用于快速开发 PHP 扩展。PHP-X 使用了完全面向对象的设计,使得 PHP 扩展开发、C++ 嵌入 PHP 变得非常简单,实现了 C++ 和 PHP 的互通。

局长
2017/06/14
6
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部