먼저 비즈니스 시나리오에 이러한 확장이 필요하고 ccvita_string이라는 함수를 제공한다고 가정해 보겠습니다. 해당 함수의 주요 기능은 마침표를 반환하는 것입니다. (이 비즈니스 시나리오는 너무 가짜입니다. 한번 살펴보십시오.) 해당 PHP 코드는 다음과 같습니다.
<span>function</span> ccvita_string(<span>$str</span><span>){ </span><span>$result</span> = '<a href="'.<span>$str</span>.'">Link</a>'<span>; </span><span>return</span><span>$result</span><span>; }</span>
첫 번째 단계는 코드를 생성하는 것입니다
확장용 PHP 개발의 편의를 위해 코드 생성기와 유사한 도구 ext_skel이 제공됩니다. 자세한 내용은 설명을 참조하세요.
먼저 ccvita.skel 파일을 생성합니다. 그 내용은
<span>string</span> ccvita_string(<span>string</span> str)
입니다. 이는 ext_skel에게 우리가 원하는 확장 프로그램에 ccvita_string이라는 함수가 있음을 알려줍니다. 그런 다음
cd MooENV/src/php-<span>5.3</span>.<span>8</span>/ext/<span>.</span>/ext_skel --extname=ccvita --proto=<span>ccvita.skel cd ccvita</span>/
을 실행합니다. 이때 ccvita의 확장 코드 프레임워크가 나왔습니다.
두 번째 단계는 구성
을 수정한 다음 config.m4 파일을 수정하여 10, 11, 12 세 줄 중 첫 번째 dnl, 즉
을 삭제하는 것입니다. 🎜>
dnl PHP_ARG_WITH(ccvita, for ccvita support,<span>dnl Make sure that the comment is aligned: dnl </span><span>[</span><span> --with-ccvita Include ccvita support</span><span>]</span>)
PHP_ARG_WITH(ccvita, for ccvita support,<span>Make sure that the comment is aligned: </span><span>[</span><span> --with-ccvita Include ccvita support</span><span>]</span>)
소스코드 ccvita.c 파일 수정
찾아 수정 ccvita_string 함수를
<span>PHP_FUNCTION(ccvita_string) { </span><span>char</span> *str =<span> NULL; </span><span>int</span> argc =<span> ZEND_NUM_ARGS(); </span><span>int</span><span> str_len; </span><span>char</span> *<span>result; </span><span>if</span> (zend_parse_parameters(argc TSRMLS_CC, <span>"</span><span>s</span><span>"</span>, &str, &str_len) ==<span> FAILURE) </span><span>return</span><span>; str_len </span>= spprintf(&result, <span>0</span>, <span>"</span><span><a href=\"%.78s\">Link</a></span><span>"</span><span>, str); RETURN_STRINGL(result, str_len, </span><span>0</span><span>); }</span>
저장 후 컴파일 시작
/usr/local/php/bin/<span>phpize .</span>/configure --with-php-c/local/php/bin/php-<span>config </span><span>make</span>
이때 모든 것이 잘 된다면 확장은 이미 module/ccvita.so에 있을 것입니다. 다음은 PHP 프로그램이 이를 호출할 수 있도록 이 확장을 PHP에 추가하는 것입니다.
<span>cp</span> modules/ccvita.so /usr/local/php/ext/<span>vim </span>/usr/local/php/etc/<span>php.ini extension</span>=/usr/local/php/ext/<span>ccvita.so #在php.ini文件最后增加这一行 service php</span>-<span>fpm restart #重启PHP服务 </span><span>cp</span> ccvita.php /data/www/wwwroot/default/
내 github 주소에서 관련 코드를 복제할 수 있습니다. 주소는 https://github.com/KimiChen/PHP-EXT다음에 액세스할 수 있습니다. ccvita.php 파일을 열고 확장 기능을 테스트합니다. 다음 기사에서는 좀 더 심층적인 내용을 다룰 것입니다.
블로그(http://www.ccvita.com/496.html)에서 다시 게시위 내용은 PHP 확장 개발 01: 첫 번째 확장 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.