PHP扩展开发(Zend)

  1. 作者QQ:67065435 QQ群:821635552

  2. 本站内容全部为作者原创,转载请注明出处!

  3. 这里以开发农历扩展(lunar)为例

  4. 获取php并进入扩展目录

    cd /root
    wget https://www.php.net/distributions/php-7.3.11.tar.gz
    tar -zxvf /root/php-7.3.11.tar.gz
    cd /root/php-7.3.11/ext
    
  5. 生成扩展骨架并打印扩展列表

    ./ext_skel.php --author 2233466866 --ext lunar
    ll
    
  6. 进入扩展目录并打印目录结构

    cd /root/php-7.3.14/ext/lunar
    ll
    
  7. 修改config.m4(【dnl】为注释的意思相当于【//】)

    vim /root/php-7.3.14/ext/lunar/config.m4
    
    # 将
    dnl PHP_ARG_WITH(lunar, for lunar support,
    dnl Make sure that the comment is aligned:
    dnl [  --with-lunar             Include lunar support])
    # 改为
    PHP_ARG_WITH(lunar, for lunar support,
    dnl Make sure that the comment is aligned:
    [  --with-lunar             Include lunar support])
    
    # 因为没用到其它C语言库,所以这里不修改(可以自行了解下)
    dnl PHP_SUBST
    dnl PHP_ADD_INCLUDE
    dnl PHP_ADD_LIBRARY_WITH_PATH
    
    ESC
    :wq
    
  8. 修改lunar.c(这里是核心的逻辑)

    # 这里是核心的逻辑
    
  9. 编译扩展并执行

    cd /root/php-7.3.14/ext/lunar
    phpize
    ./configure
    make
    make install
    
  10. 修改php.ini

    vim php.ini
    
    extension=lunar.so
    
    ESC
    :wq
    
  11. 查看扩展安装是否成功

    php -m
    
  12. 使用lunar扩展

    # CLI模式
    php -r "echo date_to_lunar(2000, 12, 31);"
    
    # 代码模式
    <?php
    echo date_to_lunar(2000, 12, 31);
    
    # 注意事项
    year参数取值范围只能是1900-2050否则得出的结果错误。
    
Copyright © 豆包嘿嘿~ 2012-∞ 冀ICP备17033181号 all right reserved,powered by Gitbook修订: 2020-08-19 14:05:41

results matching ""

    No results matching ""