GithubHelp home page GithubHelp logo

phpbook's Introduction

《PHP扩展开发及内核应用》

11年年初因兴趣建立此项目,有幸得到大家关注,万分荣幸。现在把他迁移到github上,以方便更多人参与进来。

撰写方法

认领内容

首先, 请在issues中建立一个新的issue, 说明你认领的内容, 和预计完成时间. 然后就可以Fork本项目进行编辑, 等你完成后, 发起一个Pull Request即可.

文件命名

每个章节建立一个md文件,如第11章的第3节,则建立11.3.md

格式规范

请参看已有章节的规范, 要注意的是, 每个章节在底部都需要有一个links节, 包含"目录", "上一节", "下一节"的链接

编译方法

定期同步到phpbook

开始阅读

开始阅读

phpbook's People

Contributors

albertcy avatar astraeux avatar bupt1987 avatar chenqinghe avatar chenyangguang avatar edengzv avatar fishermartyn avatar goosman-lei avatar iamloso avatar laruence avatar lionsoul2014 avatar lusecond avatar rryqszq4 avatar shaukei avatar shinwu avatar shiyanlin avatar stenote avatar sunznx avatar superbear avatar toxmc avatar walu avatar wangyunjie avatar wenjun1055 avatar wpajqz avatar wuleying avatar wulinlw avatar xujiajun avatar xuwenzhi avatar zs1379 avatar zxcvdavid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phpbook's Issues

能提供chm版本么

Hi,

能提供chm版本么?或者提供生成chm版本,这样在没有网络的时候也能看,比较方便呐

Best Wishes!

php扩展注册类的问题

看你的例子里注册类是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方法原型批注

PHP5.3中
zend_hash_get_current_key方法原型和文章中不一样
官方为:

define zend_hash_get_current_key(ht, str_index, num_index, duplicate) \

    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);

一个小小的建议~

建议写文档的时候,每行的最大宽度不要超长~

不知道有没有习惯了把电子档的文档打印出来看的习惯。如果有的话,打印起来很不方便。。。

只是个人建议哈

求原文

建议建个文件夹放原文,或给个原文的链接

6.1.md判断函数返回值是否被使用的方法

在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,"猫了个咪的,我就知道你没用我的劳动成果!");没输出来

认领17章

认领17章 Configuration and Linking。

请审核

1.3 PHP的生命周期多进程问题

据我了解,不管是Apache还是php-fpm的方式,都会是多进程的方式(这里直说Apache多进程方式),流程大概都是相同的,都是先执行MINIT然后再fork吧(省略了中间的fork),最后在关闭apache或者php-fpm的时候才执行MSHUTDOWN吧,这里说的应该是Apache很早以前的实现方式吧?

11.1章 代码有误,与歧义

第11.1面向对象中,发现了类似walu_call_user_function的代码,
请问这是从哪里出定义的,未有找到

还有,这段上面的了说的是 在扩展中实现以上test_call函数,而非整个php代码的实现
其目的,就是实现new一个类,而并call类的方法,而非要在扩展中全部定义!

我理解的应该是通过扩展,去new并call一个php中的定义的类,或已经存在的类

那是不是需要用到

zend_fetch_class

关于类的定义已经在10章介绍过了,这部分的代码看着有些问题。

11.1.md 关于对象的属性的疑问

var; echo $obj->func(); 请问下以上代码在c里面是怎么实现的,我在扩展的构造函数里给属性赋值,然后在php里var_dump属性值,得到的是null

8.2 里的zend_hash_add原型是在新版php中有变化吗?

看了下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)

是我漏了哪些东西吗?

认领第18章

认领第18章;
扩展生成器
额也来领一个吧,嘿嘿,完成时间呢,2013.1.15左右吧

认领14章

认领14章:Accessing Streams,预计9月1号之前。

8.2 章 sample_strvec_handler 例子错误

//填充数据
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--; 吧?

编译过程

编写完成后,在项目目录里执行php build.php便可。

这个build.php是个什么东西呢?项目里没有?是md的一个工具么?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.