作者zoochung (动物园)
看板PHP
标题Re: [心得] 如何撰写自己的 php extension
时间Thu Jan 13 16:11:53 2011
这是向原作者致敬的一篇教学文
我这边增加另外一种常见撰写 extension 的方法
"整合已有的 c++ lib 进 php 的 extension"
因为我的 code 蛮庞大的,我撷取其中一些有变动的 code
------------------------------------------------------
应该已经有的或过程中可能需要参考的东西
1. config.m4
http://tinyurl.com/4czg383
2. 要整合的 lib 和 include
3. 之前 sample 中给 php 看的 mm.h , mm.cc
-------------------------------------------------------
1.
在你的 config.m4 里面加上
PHP_ADD_INCLUDE(你 lib include 的位址)
PHP_REQUIRE_CXX()
PHP_SUBST(PP_SHARED_LIBADD)
-> 填入你 module 的名称,例如 PP_SHARED_LIBADD
PHP_ADD_LIBRARY(stdc++, 1, PP_SHARED_LIBADD)
-> STDC++ 加入
PHP_ADD_LIBRARY(要整合 lib 加入, 1, PP_SHARED_LIBADD)
PHP_NEW_EXTENSION(mm, mm.cc, $ext_shared)
2.
依照顺序在 mm.cc 中加入
a.
#include "建议是绝对路径"
b.
PHP_METHOD(class名称, function名称)
{
你的 code;
}
c.
在 function_entry 里面加入
PHP_ME(你class名称, function名称, NULL, ZEND_ACC_PUBLIC)
3.
./configure
make
sudo make install
4.
php.ini 加入该 extension
restart apache
------------------------------------------------
重点应该就是以上这些,需要完整范例的请看
http://tinyurl.com/dgm6dt
虽然上面是自己写一个 c++ class,但其实整合进别的 library 也可以
如果还有疑问,欢迎线上敲我 XD 我会的会尽量回答 ~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.22.252
1F:推 chrisQQ:推! 01/13 17:12
2F:→ LewisHamiltn:楼上推文都不揪的啦! 01/13 18:26
3F:→ kylekai:推得啦!~ 01/14 10:00
4F:推 appleboy46:推 01/14 23:29