Skip to content

Commit ea545b9

Browse files
committed
Site updated: 2017-07-30 21:53:42
1 parent 2ea6e8c commit ea545b9

35 files changed

+15802
-34
lines changed

Diff for: 2017/07/21/xiangmukaifajihua/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
title: "zendAPI 项目开发计划",
2222
date: "2017/07/21 10:43:47",
2323
content: ["<p>因为时间有限,开发在每天的上午6点到9点,晚上9点到12点以及周末,所以项目周期可能比正常的要长一点,我的计划如下:</p>","<h4 id=\"7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\"><a href=\"#7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\" class=\"header-anchor\">#</a><a href=\"#7月到8月完成对-zend-engine-的一些核心数据库的封装\" class=\"headerlink\" title=\"7月到8月完成对 zend engine 的一些核心数据库的封装\"></a>7月到8月完成对 zend engine 的一些核心数据库的封装</h4><p>这个阶段主要针对 zend engine 一些常用的数据接口做一些面向对象的封装,比如用的最多的 HashTable, zendAPI 会为其提供一个STL风格的迭代器进行数据访问,常见的 HashTable 的访问语义接口,方面开发者的日常调用, 避免用到类型不安全的宏调用。</p>","<h4 id=\"8-yue-dao-9-yue-chu-bu-wan-cheng-han-shu-yu-mian-xiang-dui-xiang-yu-yi-zhe-bu-fen-jie-kou-de-feng-zhuang\"><a href=\"#8-yue-dao-9-yue-chu-bu-wan-cheng-han-shu-yu-mian-xiang-dui-xiang-yu-yi-zhe-bu-fen-jie-kou-de-feng-zhuang\" class=\"header-anchor\">#</a><a href=\"#8月到9月初步完成函数与面向对象语义这部分接口的封装\" class=\"headerlink\" title=\"8月到9月初步完成函数与面向对象语义这部分接口的封装\"></a>8月到9月初步完成函数与面向对象语义这部分接口的封装</h4><p>这部分主要让开发者方便的往 zend engine 挂载自己定义的函数,变量和类等等,将一些日常的参数获取以及返回值进行标准化,让书写自定义函数的时候只关心自己的业务逻辑,让这部分代码远离 zend engine 底层的细节。在面向对象这一块跟函数的思想也差不多,主要让开发者创建自己的名称空间,自定义的类更加的简明,不用太关心底层一些繁琐的细节, zendAPI 到时候会提供对 PHP 版本号的兼容,所以对以后的升级,可以让您的扩展最大限度的避免修改。</p>","<h4 id=\"9-yue-dao-10-yue-wan-cheng-quan-ju-zi-yuan-de-tong-yi-fang-wen-jie-kou-de-feng-zhuang\"><a href=\"#9-yue-dao-10-yue-wan-cheng-quan-ju-zi-yuan-de-tong-yi-fang-wen-jie-kou-de-feng-zhuang\" class=\"header-anchor\">#</a><a href=\"#9月到10月完成全局资源的统一访问接口的封装\" class=\"headerlink\" title=\"9月到10月完成全局资源的统一访问接口的封装\"></a>9月到10月完成全局资源的统一访问接口的封装</h4><p>PHP 从最开始的时候带入了一些很不好的全局变量和资源,其实这个并不是很好,会让程序维护性大大降低。但是历史已经已经无法改变,我们只能以一种相对比较安全的方式去使用它,慢慢的淘汰它,在 zendAPI 中我们将对其提供一些统一的访问接口。</p>","<h4 id=\"10-yue-dao-11-yue-wan-cheng-zend-engine-qi-dong-guo-cheng-de-feng-zhuang\"><a href=\"#10-yue-dao-11-yue-wan-cheng-zend-engine-qi-dong-guo-cheng-de-feng-zhuang\" class=\"header-anchor\">#</a><a href=\"#10月到11月完成-zend-engine-启动过程的封装\" class=\"headerlink\" title=\"10月到11月完成 zend engine 启动过程的封装\"></a>10月到11月完成 zend engine 启动过程的封装</h4><p>扩展是不能脱离 zend engine 而存在的,我们必须将我们开发的扩展挂载到 zend engine 内核上去,zend engine 有自己的一套启动流程,也有自己明确的生命周期的概念并对外提供了很多的钩子函数和大量的宏去帮组我们完成这个工作,但是相对来说还是相当繁琐和复杂的,而我们有时候并不一定需要陷入这种细节之中浪费我们的宝贵的开发时间,所以我们在 zendAPI 中会对这个过程进行一些封装,尽量去以一种面向对象的方式去简化整个启动过程。</p>","<h4 id=\"11-yue-dao-12-yue-shi-yong-shou-ce-yu-li-zi-wen-dang-de-wan-shan\"><a href=\"#11-yue-dao-12-yue-shi-yong-shou-ce-yu-li-zi-wen-dang-de-wan-shan\" class=\"header-anchor\">#</a><a href=\"#11月到12月使用手册与例子文档的完善\" class=\"headerlink\" title=\"11月到12月使用手册与例子文档的完善\"></a>11月到12月使用手册与例子文档的完善</h4><p>我从来都认为,一个好的开源项目,文档这部分很重要,甚至有时候比项目本身还重要,因为现在大家的节奏都比较快,没有时间对研究代码,一个项目如果有好的文档支持,会大大降低入门门槛,让更多的人去使用这个项目,才能让其发挥出价值。如果 zend engine 内核这方面如果做得好的话,估计也没有我们这个项目了。zendAPI 的文档主要在官网上进行提供,共有三个方面</p>","<ol>","<li>使用手册</li>","<li>API接口文档</li>","<li>开发博客</li>","</ol>","<h4 id=\"12-yue-dao-2018-nian-1-yue-wan-shan-ruan-jian-da-bao-fa-bu-liu-cheng\"><a href=\"#12-yue-dao-2018-nian-1-yue-wan-shan-ruan-jian-da-bao-fa-bu-liu-cheng\" class=\"header-anchor\">#</a><a href=\"#12月到2018年1月完善软件打包发布流程\" class=\"headerlink\" title=\"12月到2018年1月完善软件打包发布流程\"></a>12月到2018年1月完善软件打包发布流程</h4><p>因为是暂时就我一个人开发,包括网站的维护,文档的书写,所以很多方面很欠缺,到这个阶段第一版的开发基本结束,我在这个阶段基本是完成打包脚本的优化和一些小工具的开发,比如生成项目结构的小程序。规范化版本号与版本发布流程,针对主流平台进行测试,提供相应的二进制包(rpm, deb)等等。</p>","<p>总的来说,这个对我来说挑战非常大,很多事情对我来说都是第一次,希望 zendAPI 能顺利的跟大家见面,谢谢。</p>",""],
24-
prev: null,
24+
prev: {"title":"我为什么要基于 PHP-CPP 去实现 zendAPI 项目","url":"/2017/07/26/weishenmejiyuphpcpp/index.html"},
2525
next: {"title":"我为什么要做 zendAPI 项目","url":"/2017/07/20/xiangmudongji/index.html"}
2626
};
2727

Diff for: 2017/07/26/weishenmejiyuphpcpp/index.html

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6+
<title>zendAPI - The C++ layer for Zend Engine</title>
7+
<link rel="stylesheet" href="/statics/css/common.css" />
8+
<link rel="icon" href="/zendapi.ico" type="image/ico"/>
9+
<script type="text/javascript" src = "/statics/js/manifest.js"></script>
10+
<script type="text/javascript" src = "/statics/js/vendors.js"></script>
11+
<script type="text/javascript" src = "/statics/js/common.js"></script>
12+
13+
14+
</head>
15+
<body>
16+
<div id="fakeLoader"></div>
17+
<script type="application/javascript">
18+
19+
20+
window.ARTICLE_DATA = {
21+
title: "我为什么要基于 PHP-CPP 去实现 zendAPI 项目",
22+
date: "2017/07/26 10:07:08",
23+
content: ["<p>记得去年的这个时候,我刚来奇虎的时候,在研究 PHP 的时候无意之中发现了 PHP—CPP 这个项目,立刻就被她吸引了,原来 PHP 的扩展居然还可以这样去实现,以一种面向对象的方式去开发,我感觉这个是个很好的开头。中间辗转反侧,我也尝试了两个项目,一个是 TOPJS 现在暂时停止了,另一个是 qingeditor,同样暂停开发,折腾最终我也是觉得在 PHP 领域做点东西,所以开始构思 zendAPI。</p>","<p>我现在的情况是:</p>","<ol>","<li>我从未开发过 c++ 项目</li>","<li>我从来没有开发过 PHP 扩展</li>","<li>我需要一个由我控制的项目,实施自己的想法,可能不成熟</li>","</ol>","<p>基于这两个条件,我急需要一个类似的项目作为原型进行开发,所以选择了 PHP-CPP。这个项目文档还算完整,有简单是使用文档,但是没有 API 接口文档,对 zend engine 进行了封装,但是封装的不够完整。使用了一些面向对象的风格去封装,但是又没装的不彻底。最不好的一个是,php-cpp 是一个动态库,但是却不具备 Qt 那样的二进制兼容保证。<br>其实之前有想过给 php-cpp 提需求,但是我没什么名气,也是个菜鸟,所以打住了这个想法。</p>","<p>基于以上的原因,我开始了 zendAPI 项目,同时基于 php-cpp 进行开发,第一版中我们会有很多接口,编程模式跟 php-cpp 保持基本相似,这样可以让我快速的切入 php 扩展开发,在做的过程中有项目比较成熟的项目进行参考,大大节约了我填坑的成本,同时也防止了我掉进一些坑的可能性。在研究 php-cpp 我也可以实践 c++ 编程和熟悉 php 接口,为进一步改进 php-cpp 奠定坚实的基础。</p>","<p>相信我,我会努力将 zendAPI 打造好,等到成熟的那一天,我也会将代码贡献给 php-cpp。</p>",""],
24+
prev: null,
25+
next: {"title":"zendAPI 项目开发计划","url":"/2017/07/21/xiangmukaifajihua/index.html"}
26+
};
27+
28+
window.SITE_CATEGORIES = [{"name":"网站首页","url":"/"},{"name":"手册","url":"/manual"},{"name":"API文档","url":"/api"},{"name":"博客","url":"/blog"},{"name":"关于我们","url":"/about"}]
29+
30+
</script>
31+
<div class="uk-offcanvas-content">
32+
<div id="header-wrapper" class="uk-container uk-margin-remove uk-container-expand site-header" uk-sticky="show-on-up: true; animation: uk-animation-slide-top;"></div>
33+
<script src="/statics/js/pages/article.js"></script>
34+
<link rel="stylesheet" href="/statics/css/article.css">
35+
<div id="container"></div>
36+
<div id= "footer-wrapper"></div>
37+
<div id="offcanvas-push" uk-offcanvas="mode: slide; overlay: true">
38+
<div class="uk-offcanvas-bar" id = "sidebar">
39+
<button class="uk-offcanvas-close" type="button" uk-close></button>
40+
<div class="menu-container">
41+
42+
<ul class = "uk-text-left uk-width-1-1">
43+
44+
<li class="uk-width-1-1"><a href = "/">网站首页</a></li>
45+
46+
<li class="uk-width-1-1"><a href = "/manual">手册</a></li>
47+
48+
<li class="uk-width-1-1"><a href = "/api">API文档</a></li>
49+
50+
<li class="uk-width-1-1"><a href = "/blog">博客</a></li>
51+
52+
<li class="uk-width-1-1"><a href = "/about">关于我们</a></li>
53+
54+
</ul>
55+
56+
57+
</div>
58+
</div>
59+
</div>
60+
</div>
61+
</body>
62+
</html>

Diff for: blog/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020

2121
window.BLOG_LIST_DATA = {
22-
items: [{"title":"zendAPI 项目开发计划","date":"2017/07/21 10:43:47","excerpt":"<p>因为时间有限,开发在每天的上午6点到9点,晚上9点到12点以及周末,所以项目周期可能比正常的要长一点,我的计划如下:</p>\n<h4 id=\"7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\"><a href=\"7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\" class=\"header-anchor\">\"#\"</a><a href=\"#7月到8月完成对-zend-engine-的一些核心数据库的封装\" class=\"headerlink\" title=\"7月到8月完成对 zend engine 的一些核心数据库的封装\"></a>7月到8月完成对 zend engine 的一些核心数据库的封装</h4><p>这个阶段主要针对 zend engine 一些常用的数据接口做一些面向对象的封装,比如用的最多的 HashTable, zendAPI 会为其提供一个STL风格的迭代器进行数据访问,常见的 HashTable 的访问语义接口,方面开发者的日常调用, 避免用到类型不安全的宏调用。</p>","link":"/2017/07/21/xiangmukaifajihua/index.html","coverImage":null},{"title":"我为什么要做 zendAPI 项目","date":"2017/07/20 22:29:02","excerpt":"<p>经过紧张的开发,我终于费了九牛二虎之力将 zendAPI 的项目官网做好上线了,眨眼已经入职奇虎一年了,我也走完了我的职业生涯规划的第一年,别问我之前4年干啥去了,我去潇洒了 (拉着几个大学同学创业去了)。回想这一年一路走来有太多的酸甜苦辣了,不过总体来说吉人自有天相过程还算顺利。</p>\n<p>曾经有人问我,你为什么要做开源项目呢?现在开源项目这么多,在 Github 上大到操作系统,小到一个网页按钮的颜色设置都有相应的开源项目,我们拿来用就可以了,为什么还得自己去费这么大的力气去做一个根本不赚钱的项目呢?平时工作已经这么忙了,还得挤出时间去研究和开发。</p>\n<p>对于这个问题我想从如下几个方面进行回答:</p>","link":"/2017/07/20/xiangmudongji/index.html","coverImage":null},{"title":"Hello world, zendAPI 项目官方网站正式上线","date":"2017/06/26 10:03:32","excerpt":"<p>经过紧张的开发,我们的 zendAPI 官网正式的与大家见面了,后续的开发动态和项目的文档,我们都会同步的更新到网站上,谢谢大家的支持。</p>\n<p>zendAPI 的官网网站的源码托管在 : <a href=\"https://www.github.com/zendapi/zendapi.org\" target=\"_blank\" rel=\"external\">zendAPI official Site</a></p>\n<p>下面我将介绍下我们官网开发使用的一些开源项目:</p>","link":"/2017/06/26/welcome/index.html","coverImage":null}],
22+
items: [{"title":"我为什么要基于 PHP-CPP 去实现 zendAPI 项目","date":"2017/07/26 10:07:08","excerpt":"<p>记得去年的这个时候,我刚来奇虎的时候,在研究 PHP 的时候无意之中发现了 PHP—CPP 这个项目,立刻就被她吸引了,原来 PHP 的扩展居然还可以这样去实现,以一种面向对象的方式去开发,我感觉这个是个很好的开头。中间辗转反侧,我也尝试了两个项目,一个是 TOPJS 现在暂时停止了,另一个是 qingeditor,同样暂停开发,折腾最终我也是觉得在 PHP 领域做点东西,所以开始构思 zendAPI。</p>\n<p>我现在的情况是:</p>\n<ol>\n<li>我从未开发过 c++ 项目</li>\n<li>我从来没有开发过 PHP 扩展</li>\n<li>我需要一个由我控制的项目,实施自己的想法,可能不成熟</li>\n</ol>","link":"/2017/07/26/weishenmejiyuphpcpp/index.html","coverImage":null},{"title":"zendAPI 项目开发计划","date":"2017/07/21 10:43:47","excerpt":"<p>因为时间有限,开发在每天的上午6点到9点,晚上9点到12点以及周末,所以项目周期可能比正常的要长一点,我的计划如下:</p>\n<h4 id=\"7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\"><a href=\"7-yue-dao-8-yue-wan-cheng-dui-zend-engine-de-yi-xie-he-xin-shu-ju-ku-de-feng-zhuang\" class=\"header-anchor\">\"#\"</a><a href=\"#7月到8月完成对-zend-engine-的一些核心数据库的封装\" class=\"headerlink\" title=\"7月到8月完成对 zend engine 的一些核心数据库的封装\"></a>7月到8月完成对 zend engine 的一些核心数据库的封装</h4><p>这个阶段主要针对 zend engine 一些常用的数据接口做一些面向对象的封装,比如用的最多的 HashTable, zendAPI 会为其提供一个STL风格的迭代器进行数据访问,常见的 HashTable 的访问语义接口,方面开发者的日常调用, 避免用到类型不安全的宏调用。</p>","link":"/2017/07/21/xiangmukaifajihua/index.html","coverImage":null},{"title":"我为什么要做 zendAPI 项目","date":"2017/07/20 22:29:02","excerpt":"<p>经过紧张的开发,我终于费了九牛二虎之力将 zendAPI 的项目官网做好上线了,眨眼已经入职奇虎一年了,我也走完了我的职业生涯规划的第一年,别问我之前4年干啥去了,我去潇洒了 (拉着几个大学同学创业去了)。回想这一年一路走来有太多的酸甜苦辣了,不过总体来说吉人自有天相过程还算顺利。</p>\n<p>曾经有人问我,你为什么要做开源项目呢?现在开源项目这么多,在 Github 上大到操作系统,小到一个网页按钮的颜色设置都有相应的开源项目,我们拿来用就可以了,为什么还得自己去费这么大的力气去做一个根本不赚钱的项目呢?平时工作已经这么忙了,还得挤出时间去研究和开发。</p>\n<p>对于这个问题我想从如下几个方面进行回答:</p>","link":"/2017/07/20/xiangmudongji/index.html","coverImage":null},{"title":"Hello world, zendAPI 项目官方网站正式上线","date":"2017/06/26 10:03:32","excerpt":"<p>经过紧张的开发,我们的 zendAPI 官网正式的与大家见面了,后续的开发动态和项目的文档,我们都会同步的更新到网站上,谢谢大家的支持。</p>\n<p>zendAPI 的官网网站的源码托管在 : <a href=\"https://www.github.com/zendapi/zendapi.org\" target=\"_blank\" rel=\"external\">zendAPI official Site</a></p>\n<p>下面我将介绍下我们官网开发使用的一些开源项目:</p>","link":"/2017/06/26/welcome/index.html","coverImage":null}],
2323
prev: null,
2424
next: null
2525
};

Diff for: index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919

2020
window.INDEX_PAGE_DATA = {
21-
newsList: [{"title":"zendAPI 项目开发计划","url":"/2017/07/21/xiangmukaifajihua/index.html","date":"2017-07-21T02:43:47.000Z"},{"title":"我为什么要做 zendAPI 项目","url":"/2017/07/20/xiangmudongji/index.html","date":"2017-07-20T14:29:02.000Z"},{"title":"Hello world, zendAPI 项目官方网站正式上线","url":"/2017/06/26/welcome/index.html","date":"2017-06-26T02:03:32.000Z"}]
21+
newsList: [{"title":"我为什么要基于 PHP-CPP 去实现 zendAPI 项目","url":"/2017/07/26/weishenmejiyuphpcpp/index.html","date":"2017-07-26T02:07:08.000Z"},{"title":"zendAPI 项目开发计划","url":"/2017/07/21/xiangmukaifajihua/index.html","date":"2017-07-21T02:43:47.000Z"},{"title":"我为什么要做 zendAPI 项目","url":"/2017/07/20/xiangmudongji/index.html","date":"2017-07-20T14:29:02.000Z"},{"title":"Hello world, zendAPI 项目官方网站正式上线","url":"/2017/06/26/welcome/index.html","date":"2017-06-26T02:03:32.000Z"}]
2222
};
2323

2424
window.SITE_CATEGORIES = [{"name":"网站首页","url":"/"},{"name":"手册","url":"/manual"},{"name":"API文档","url":"/api"},{"name":"博客","url":"/blog"},{"name":"关于我们","url":"/about"}]

0 commit comments

Comments
 (0)