文档章节

我为什么要基于 PHP-CPP 去实现 zendAPI 项目

zendapi
 zendapi
发布于 2017/09/11 15:34
字数 549
阅读 59
收藏 0

记得去年的这个时候,我刚来奇虎的时候,在研究 PHP 的时候无意之中发现了 PHP—CPP 这个项目,立刻就被她吸引了,原来 PHP 的扩展居然还可以这样去实现,以一种面向对象的方式去开发,我感觉这个是个很好的开头。中间辗转反侧,我也尝试了两个项目,一个是 TOPJS 现在暂时停止了,另一个是 qingeditor,同样暂停开发,折腾最终我也是觉得在 PHP 领域做点东西,所以开始构思 zendAPI。

我现在的情况是:

  1. 我从未开发过 c++ 项目
  2. 我从来没有开发过 PHP 扩展
  3. 我需要一个由我控制的项目,实施自己的想法,可能不成熟

基于这两个条件,我急需要一个类似的项目作为原型进行开发,所以选择了 PHP-CPP。这个项目文档还算完整,有简单是使用文档,但是没有 API 接口文档,对 zend engine 进行了封装,但是封装的不够完整。使用了一些面向对象的风格去封装,但是又没装的不彻底。最不好的一个是,php-cpp 是一个动态库,但是却不具备 Qt 那样的二进制兼容保证。
其实之前有想过给 php-cpp 提需求,但是我没什么名气,也是个菜鸟,所以打住了这个想法。

基于以上的原因,我开始了 zendAPI 项目,同时基于 php-cpp 进行开发,第一版中我们会有很多接口,编程模式跟 php-cpp 保持基本相似,这样可以让我快速的切入 php 扩展开发,在做的过程中有项目比较成熟的项目进行参考,大大节约了我填坑的成本,同时也防止了我掉进一些坑的可能性。在研究 php-cpp 我也可以实践 c++ 编程和熟悉 php 接口,为进一步改进 php-cpp 奠定坚实的基础。

相信我,我会努力将 zendAPI 打造好,等到成熟的那一天,我也会将代码贡献给 php-cpp。

© 著作权归作者所有

共有 人打赏支持
zendapi

zendapi

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

评论(1)

华仔php
加油~
使用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-X —— ZendAPI 的 C++ 封装库(韩天峰)

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

局长
2017/06/14
6
0
10月新增开源项目:号称最快的 Node.js 应用框架来了

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

编辑部的故事
2017/11/07
0
16
zendAPI —— Zend Engine 的 C++ 封装

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

两味真火
2017/09/09
34
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

没有更多内容

加载失败,请刷新页面

加载更多

Qt那些事0.0.15

以下与Q_DECLARE_METATYPE相关内容全部是翻译自Qt文档。参看QVariant Class | Qt Core 5.9以及QMetaType Class | Qt Core 5.9 QVariant QVariant::fromValue(const T& value) 返回一份包含v......

Ev4n
14分钟前
3
0
spring上传文件返回绝对路径,简单工具类

import com.google.common.io.Files;import lombok.extern.slf4j.Slf4j;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOExceptio......

Boss-x
26分钟前
4
0
1个开发如何撑起一个过亿用户的小程序

本文由云+社区发表 2018年12月,腾讯相册累计用户量突破1亿,月活1200万,阿拉丁指数排行 Top 30,已经成为小程序生态的重量级玩家。 三个多月来,腾讯相册围绕【在微信分享相册照片】这一核...

腾讯云加社区
32分钟前
9
0
golang ssh包使用方法介绍

在使用gexpect包发现很多问题之外,这里又尝试使用ssh user@127.0.0.1的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must specify HostKeyCallback 问题的解法方法及最终使用过...

linuxprobe16
37分钟前
3
0
layer

Layui Layer在open弹出层中异步加载数据和form表单radio、checkbox、select不渲染,不可点击的解决办法 layer 实现弹窗提交信息 function confirmUpdateAward(i) { layer.open({ ...

mickelfeng
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部