Php extension development tutorial

Source: Internet
Author: User

PHP extension development is not something that all developers can operate on. I will demonstrate the implementation process of PHP extension development. If you need it, please refer to it.

Let's assume that we need such an extension to provide a function named tao_string. Its main function is to return a certain character. The corresponding PHP code may be like this:

The Code is as follows: Copy code

Function tao_string ($ str ){
$ Result = $ str;
Return $ result;
}

Step 1: generate code
PHP provides an ext_skel tool similar to the code generator for the convenience of extension development. For details, see the official description of php.net (https://svn.php.net/repository/php/php-src/trunk/README.EXT_SKEL ).

Create a file tao. skel whose content is

String tao_string (string str)

This is to tell the ext_skel. The extension we want to do has a function named tao_string. Then execute

The Code is as follows: Copy code

Cd MooENV/src/php-5.3.8/ext/
./Ext_skel -- extname = tao -- proto = tao. skel
Cd tao/

At this time, tao's extended code framework has come out.

Step 2: modify the configuration
Modify the config. m4 file and delete the dnl at the beginning of lines 10, 11, and 12.

The Code is as follows: Copy code

Dnl PHP_ARG_WITH (tao, for tao support,
Dnl Make sure that the comment is aligned:
Dnl [-- with-tao Include tao support])

Change

PHP_ARG_WITH (tao, for tao support,
Make sure that the comment is aligned:
[-- With-tao Include tao support])

Step 3: Implement Functions
Modify the source tao. c file
Find and change the tao_string function

The Code is as follows: Copy code

PHP_FUNCTION (tao_string)
{
Char * str = NULL;
Int argc = ZEND_NUM_ARGS ();
Int str_len;
Char * result;

If (zend_parse_parameters (argc TSRMLS_CC, "s", & str, & str_len) = FAILURE)
Return;

Str_len = spprintf (& result, 0, "wo shi %. 78 s", str );
RETURN_STRINGL (result, str_len, 0 );
}

Step 4: Compile the extension
After saving, start compiling

The Code is as follows: Copy code

/Usr/local/php/bin/phpize
./Configure -- with-php-config =/usr/local/php/bin/php-config
Make

Step 5: add an extension
At this time, if everything goes well, the extension is already in the position of modules/tao. so. The following is how to add this extension to PHP so that the PHP program can call it.

The Code is as follows: Copy code

Cp modules/tao. so/usr/local/php/ext/
Vim/usr/local/php/etc/php. ini
Extension =/usr/local/php/ext/tao. so # Add this line at the end of the php. ini file.
Service php-fpm restart # restart the PHP service
Cp tao. php/data/www/wwwroot/default/

Next, you can access the tao. php file and test it.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.