Heim  >  Artikel  >  php教程  >  PHP扩展生成器

PHP扩展生成器

WBOY
WBOYOriginal
2016-06-13 10:54:29760Durchsuche

第一种方法:使用PHP源码包自带的ext_skel工具。

 

~/public_html/php-5.3.13/ext> ./ext_skel  --extname=sample11

Creating directory sample11

Creating basic files: config.m4 config.w32 .svnignore sample11.c php_sample11.h CREDITS EXPERIMENTAL tests/001.phpt sample11.php [done].

 

To use your new extension, you will have to execute the following steps:

 

1.  $ cd ..

2.  $ vi ext/sample11/config.m4

3.  $ ./buildconf

4.  $ ./configure --[with|enable]-sample11

5.  $ make

6.  $ ./php -f ext/sample11/sample11.php

7.  $ vi ext/sample11/sample11.c

8.  $ make

 

Repeat steps 3-6 until you are satisfied with ext/sample11/config.m4 and

step 6 confirms that your module is compiled into PHP. Then, start writing

code and repeat the last two steps as often as necessary.

第二种方法:使用CodeGen_PECL。

 

/usr/local/services/php/bin> sudo ./pear install CodeGen_PECL

downloading CodeGen_PECL-1.1.3.tgz ...

Starting to download CodeGen_PECL-1.1.3.tgz (102,640 bytes)

........................done: 102,640 bytes

install ok: channel://pear.php.net/CodeGen_PECL-1.1.3

 

/usr/local/services/php/bin> sudo ln -s /usr/local/services/php/bin/pecl-gen /usr/local/bin/

 

~/public_html/php-5.3.13/ext> pecl-gen --extname=sample12

 

Strict Standards: Declaration of CodeGen_PECL_Element_Constant::docFooter() should be compatible with that of CodeGen_Element::docFooter() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Constant.php on line 341

 

Strict Standards: Declaration of CodeGen_PECL_Element_Resource::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Resource.php on line 354

 

Strict Standards: Declaration of CodeGen_PECL_Element_Ini::docFooter() should be compatible with that of CodeGen_Element::docFooter() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Ini.php on line 443

 

Strict Standards: Declaration of CodeGen_PECL_Element_Logo::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Logo.php on line 259

 

Strict Standards: Declaration of CodeGen_PECL_Element_Method::setCode() should be compatible with that of CodeGen_PECL_Element_Function::setCode() in www.2cto.com/usr/local/services/php/lib/php/CodeGen/PECL/Element/Method.php on line 471

 

Strict Standards: Declaration of CodeGen_PECL_Element_Stream::hCode() should be compatible with that of CodeGen_Element::hCode() in /usr/local/services/php/lib/php/CodeGen/PECL/Element/Stream.php on line 239

 

Your extension has been created in directory ./sample12.

See ./sample12/README and/or ./sample12/INSTALL for further instructions.

注:报错“Strict Standards: Declaration of […] should be compatible with that of […] in […]”是因为PHP5.3.0+要求子类声明必须在父类声明,请直接修改php.ini。

 

error_reporting = E_ALL & ~E_STRICT

以上只是给出了生成PHP扩展的最简单的命令,ext_skel和pecl-gen还支持多种参数生成更加丰富的扩展,请自行参考相关帮助文档。

 

~/public_html/php-5.3.13/ext> ./ext_skel --help

~/public_html/php-5.3.13/ext> pecl-gen --help

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn