首先要明确一下“php 是世界上最好的语言”,如果你有异议,先同意一下再阅读;
php扩展作为 php的高级应用,再对于特有的业务逻辑,通过编写扩展能大大提升执行效率。
再潜意识里任务PHP扩展是一件非常高级的工作,对其望而却步。真正硬着头皮,做了后才发现soeasy!
下面来演示一下php扩展的编写。
当前的php 版本为5.6
第一步环境准备:
- download php的源码。(不详说 php.net直接下)
- 解压后 按照步骤安装需要的模块。
- 一个可用的php环境已经有了,想要丰富php扩展。进入ext 目录。
没错!你会看到很多内置的扩展 curl、json、mcrypt等等。。
4.我们就是要编写和他们一样的插件。鸟哥教我们要多看看已有的扩展,对我们的以后编写肯定有帮助
第二步 编写自己的扩展:
ext_skel 这是一个已经存在的扩展框架生成工具
- ./ext_skel --extname=fengjie
- cd fengjie
- vi config.m4
- 放开 10,11,12行的注释(dnl) 即删除 PHP_ARG_WITH函数前的dnl 保存
- vi fengjie.c
注册自己的函数。
- 编写自己的函数。第一次可以抄一下已有的confirm_fengjie_compiled
ok 两步就编写完成了。
下面就是通用的编译安装扩展的通用方法
php5.3 以后提供了phpize工具
因此 安装方法:
- cd /home/users/fengjie03/src/php-5.6.9/ext/fengjie/
- /home/users/fengjie03/php/bin/phpize
- ./configure --with-php-config=/home/users/fengjie03/php/bin/php-config
- make
- make install
- vi /home/users/fengjie03/php/etc/php.ini 添加 fengjie.so
ok 安装完成 看一下是否成功
/home/users/fengjie03/php/bin/php -m | grep 'fengjie'
bingo!!
一段测试代码:
<?php
echo "<pre>";
print_r(get_loaded_extensions());
print_r(get_extension_funcs('fengjie'));
echo fengjie_test('My first php extension');
echo "</pre>";
恭喜你 已经get 里php扩展的技能!
本文暂时没有评论,来添加一个吧(●'◡'●)