文档章节

zendAPI 项目开发计划

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

因为时间有限,开发在每天的上午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)

乐皮
乐皮
支持 :+1:
zendapi/zendapi

zendAPI 是什么? zendAPI 是对 Zend Engine 的 C 接口使用 C++ 的最新标准 C++11 进行而面向对象的封装,从而屏蔽了底层 Zend Engine API 的接口复杂性,加快开发 PHP 扩展的效率。从而让 ...

zendapi ⋅ 2017/09/08 ⋅ 0

Zend Engine 的 C++ 封装--zendAPI

介绍 该项目是对 Zend Engine 的 C 接口使用 C++11 进行而面向对象的封装,从而屏蔽了底层 Zend Engine API 的接口复杂性,加快开发 PHP 扩展的效率。 项目官网地址:www.zendapi.org 设计目...

zendapi ⋅ 2017/09/08 ⋅ 6

ZendAPI 的 C++ 封装库--PHP-X

PHP ZendAPI 的 C++ 封装库,可以用于快速开发 PHP 扩展。PHP-X 使用了完全面向对象的设计,使得 PHP 扩展开发、C++ 嵌入 PHP 变得非常简单,实现了 C++ 和 PHP 的互通。 环境依赖: PHP-7....

matyhtf ⋅ 2017/06/13 ⋅ 15

linuxdeepin(ubuntu)下php扩展开发

1.首先安装好php运行环境 安装apache apt-get install apache2 安装php apt-get install libapache2-mod-php5 php5 安装php扩展 apt-get install php5-gd php5-mysql 安装mysql apt-get ins......

wankaiming ⋅ 2012/12/28 ⋅ 1

[研究] 深入PHP内核之ZendAPI扩展篇

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

长平狐 ⋅ 2012/11/19 ⋅ 0

10月新增开源项目:号称最快的 Node.js 应用框架来了

摘要: 看看开源中国社区十月份有哪些值得关注的新增项目:百度研发的移动端深度学习框架 MDL,号称是目前最快 Node.js 应用框架之一的 Fastify,Go 语言实现的分布式全文搜索引擎 riot 等等…...

开源中国 ⋅ 01/05 ⋅ 0

如何用敏捷方法做测试?

敏捷的核心就是个“快”字:快速开发,快速推出,快速验证产品方向。说白了就是管理每个小目标,保证他们能够按时完成。 想要运用敏捷方法,要注意几点: 1、开发做完一个小功能马上开始测试...

萌虎萌虎 ⋅ 2017/05/02 ⋅ 0

又到每年最忙时,测试们准备好了吗?

临近年末,各家公司都进入了紧张的年前项目冲刺阶段,我们也不例外。每天开完早会,就听大家在抱怨任务太多做不完、一个月都没正常过周末了云云。 据开发部门的同事说,他们的任务列表的长度...

萌虎萌虎 ⋅ 2016/11/23 ⋅ 0

开源中国众包第二波阿里云悬赏项目,总金额30万

昨天开源中国众包平台正式发布了合作伙伴 —— 阿里云的第一波的3个悬赏项目,总金额10万(详情),目前三个项目已经结束报名正式进入开发阶段。 现在第二波4个悬赏项目已经发布,总金额超过...

oschina ⋅ 2015/10/22 ⋅ 49

[转]项目组项目开发经验总结

一年前的项目总结,拿来献丑,与大家共同学习。 项目组项目开发经验总结(5点) 1. 开发之前, 做好计划。 a) 项目计划应该划分各里程碑,如: i. 初期计划(一期)只实现基本功能。 ii. 整体计划(...

netjune ⋅ 2012/09/28 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS7克隆后网卡配置问题

首先默认第一台虚拟机网卡信息为: TYPE="Ethernet" BOOTPROTO=static DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" IPV4_FAILURE_FATAL="no" #IPV6INIT="yes" #IPV6_AUTOCONF=“yes” #I......

北岩 ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 今天 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 今天 ⋅ 0

expect

官网:https://core.tcl.tk/expect/index Introduction Expect is a tool for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really m......

刀锋 ⋅ 今天 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 今天 ⋅ 1

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 今天 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部