walu / phpbook Goto Github PK
View Code? Open in Web Editor NEWPHP扩展开发及内核应用
PHP扩展开发及内核应用
你好 文档中部分文章的图片没有了。
预计完成时间12月底
重新打开
编写完成后,在项目目录里执行php build.php便可。
这个build.php是个什么东西呢?项目里没有?是md的一个工具么?
//填充数据
while (argc) {
zval *value;
MAKE_STD_ZVAL(value);
ZVAL_STRING(value, argv[argc], 1);
argv++;
if (zend_hash_next_index_insert(ht, (void**)&value,
sizeof(zval*)) == FAILURE) {
/* Silently skip failed additions */
zval_ptr_dtor(&value);
}
}
中的 argv++; 应该是 argc--; 吧?
RT
Hi,
能提供chm版本么?或者提供生成chm版本,这样在没有网络的时候也能看,比较方便呐
Best Wishes!
认领14章:Accessing Streams,预计9月1号之前。
看了下5.5,声明变了:
ZEND_API int _zend_hash_add_or_update(HashTable *ht, const char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC);
#define zend_hash_update(ht, arKey, nKeyLength, pData, nDataSize, pDest) \
_zend_hash_add_or_update(ht, arKey, nKeyLength, pData, nDataSize, pDest, HASH_UPDATE ZEND_FILE_LINE_CC)
#define zend_hash_add(ht, arKey, nKeyLength, pData, nDataSize, pDest) \
_zend_hash_add_or_update(ht, arKey, nKeyLength, pData, nDataSize, pDest, HASH_ADD ZEND_FILE_LINE_CC)
是我漏了哪些东西吗?
RT
PHP 5.6.9 (cli) (built: May 15 2015 09:36:14)
将.so扩展配置加入php.ini 启动php-fpm 提示:
php-fpm dead but pid file exists
预计完成时间:2012.8.1前
在php7中if (return_value_used)方法会报错:
错误:‘return_value_used’未声明(在此函数内第一次使用)
参考了php-7.0.11\ext\standard\array.c的方法if (USED_RET()),编译运行正常。但是php_error_docref(NULL TSRMLS_CC, E_NOTICE,"猫了个咪的,我就知道你没用我的劳动成果!");没输出来
建议整理一下
Zend api
建议写文档的时候,每行的最大宽度不要超长~
不知道有没有习惯了把电子档的文档打印出来看的习惯。如果有的话,打印起来很不方便。。。
只是个人建议哈
As much as I appreciate you guys' efforts, reading on github is not a good experience. Have you consider using gitbook (https://github.com/GitbookIO/gitbook) or something similar to compile into a book?
我看到亚马逊上的价格是¥400+,我们这么干算盗版么?
RT
“这是一片独立天敌”
感觉应该是 “这是一片独立天地”
第11.1面向对象中,发现了类似walu_call_user_function的代码,
请问这是从哪里出定义的,未有找到
还有,这段上面的了说的是 在扩展中实现以上test_call函数,而非整个php代码的实现
其目的,就是实现new一个类,而并call类的方法,而非要在扩展中全部定义!
我理解的应该是通过扩展,去new并call一个php中的定义的类,或已经存在的类
那是不是需要用到
zend_fetch_class
关于类的定义已经在10章介绍过了,这部分的代码看着有些问题。
认领17章 Configuration and Linking。
请审核
以一个P结尾的宏的参数大多是_zval型变量。 此外获取变量类型的宏还有两个,分别是Z_TYPE和Z_TYPE_PP,前者的参数是zval型,而后者的参数则是_*zval。
建议建个文件夹放原文,或给个原文的链接
txt格式不方便阅读, 用Markdown的话会比较好一些.
有空就翻..尽量早完成.
看你的例子里注册类是zend_register_internal_class_ex(&ce TSRMLS_CC);
但是我实际使用的时候 error: too few arguments to function call, expected 3, have 1
Huaerjie_ce=zend_register_internal_class_ex(&ce TSRMLS_CC);
的错误,改为zend_register_internal_class_ex(&ce,NULL,NULL TSRMLS_CC);
就好了,请问是php版本的缘故么?
我的版本是5.6.24
PHP5.3中
zend_hash_get_current_key方法原型和文章中不一样
官方为:
zend_hash_get_current_key_ex(ht, str_index, NULL, num_index, duplicate, NULL)
8.2章节为:
int zend_hash_get_current_key(HashTable _ht,char *_strIdx, unit *strIdxLen,ulong *numIdx, zend_bool duplicate);
PHP_MSHUTDOWN_FUNCTION
里面写到 打开一个文件句柄,但是return SUCCESS
前是否忘了去关闭文件句柄,不是的话不会导致某个问题?
认领第18章;
扩展生成器
额也来领一个吧,嘿嘿,完成时间呢,2013.1.15左右吧
据我了解,不管是Apache还是php-fpm的方式,都会是多进程的方式(这里直说Apache多进程方式),流程大概都是相同的,都是先执行MINIT然后再fork吧(省略了中间的fork),最后在关闭apache或者php-fpm的时候才执行MSHUTDOWN吧,这里说的应该是Apache很早以前的实现方式吧?
之前那个不小心给关了,重新开一个
文件夹可以起名叫“Chapter 03” 使得排序正常。
RT
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.