PHP에서 확장이란 PHP에 새로운 기능을 추가하는 방법을 의미하며, 이를 통해 PHP의 기능을 확장하고 다양한 애플리케이션 시나리오에 적응할 수 있습니다. PHP 확장은 C 언어로 작성되므로 C 언어에 대한 지식은 확장 개발을 위한 기본 요구 사항입니다.
귀하의 코드를 다른 사람이 PHP 확장으로 사용할 수 있게 하려면 사용자 정의 PHP 확장을 만들어야 합니다. 이 문서에서는 기본 PHP 확장을 만드는 방법을 보여줍니다.
확장 개발을 시작하기 전에 PHP 자체 및 관련 도구 체인이 포함된 PHP 개발 환경을 설치해야 합니다. PHP 공식 웹사이트에 가서 PHP 소스 코드를 다운로드하고 컴파일 및 설치하거나, 컴파일된 바이너리 패키지를 직접 사용할 수 있습니다.
PHP를 설치한 후에는 PHP C/C++ 확장 개발 키트, phpize 및 기타 도구와 같은 PHP 개발 도구 키트도 설치해야 합니다. 이러한 도구를 사용하면 PHP 확장을 빠르게 컴파일하고 빌드할 수 있습니다.
PHP 확장은 C 언어로 작성되므로 확장 C 코드를 작성하려면 C 언어를 배우고 확장에 필요한 API 및 데이터 유형에 익숙해져야 합니다. 여기서는 간단한 추가 기능을 예로 들어 보겠습니다.
확장 프로그램 디렉터리에서 새 소스 코드 파일 추가.c를 만들고 다음 내용을 작성합니다.
#include "php.h" // 定义函数原型 PHP_FUNCTION(addition); // 定义模块信息结构体 zend_module_entry addition_module_entry = { STANDARD_MODULE_HEADER, "addition", NULL, NULL, NULL, NULL, NULL, NULL, "1.0", STANDARD_MODULE_PROPERTIES }; // 定义函数参数 ZEND_BEGIN_ARG_INFO_EX(arginfo_addition, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, b) ZEND_END_ARG_INFO() // 定义函数 PHP_FUNCTION(addition) { // 定义变量 int a, b; long result; // 从参数中获取值 ZEND_PARSE_PARAMETERS_START(2, 2) Z_PARAM_LONG(a) Z_PARAM_LONG(b) ZEND_PARSE_PARAMETERS_END(); // 计算结果 result = a + b; // 返回结果 RETURN_LONG(result); } // 注册函数入口 zend_function_entry addition_functions[] = { PHP_FE(addition, arginfo_addition) PHP_FE_END }; // 构造扩展 zend_module_entry *get_module(void) { return &addition_module_entry; } // 扩展初始化函数 PHP_MINIT_FUNCTION(addition) { return SUCCESS; } // 扩展关闭函数 PHP_MSHUTDOWN_FUNCTION(addition) { return SUCCESS; } // 扩展信息函数 PHP_MINFO_FUNCTION(addition) { php_info_print_table_start(); php_info_print_table_header(2, "addition support", "enabled"); php_info_print_table_end(); } // 定义模块 zend_module_entry addition_module_entry = { STANDARD_MODULE_HEADER, "addition", addition_functions, // 注册扩展的函数入口 PHP_MINIT(addition), PHP_MSHUTDOWN(addition), NULL, NULL, PHP_MINFO(addition), "1.0", STANDARD_MODULE_PROPERTIES }; // 将扩展注册到PHP中 ZEND_GET_MODULE(addition)
Build 확장 main 이는 PHP와 함께 제공되는 명령줄 도구를 사용하여 수행됩니다. 확장 디렉터리에서 다음 명령을 실행합니다.
phpize ./configure make
이 명령은 자동으로 Makefile을 생성하고, 컴파일 및 링크하고, 동적 링크 라이브러리(확장 파일) 추가.so를 생성합니다. 이 시점에서 phpinfo() 함수를 사용하여 확장이 생성되었는지 확인할 수 있습니다.
마지막으로 생성된 확장 파일 추가.so를 PHP 모듈 디렉터리에 복사하고 php.ini 파일을 편집하여 확장을 활성화해야 합니다.
sudo cp ./modules/addition.so /path/to/php/modules/ sudo echo "extension=addition.so" >> /path/to/php/php.ini
이제 사용자 정의 확장을 사용할 준비가 되었으며 PHP 코드에서 사용할 수 있습니다. add() 함수를 호출하여 덧셈 계산을 수행합니다.
요약
사용자 정의 PHP 확장을 만들려면 C 언어, API, PHP 확장에 필요한 데이터 유형에 대한 지식은 물론 확장 컴파일 및 설치에 대한 지식도 필요합니다. PHP 확장 개발이 처음이라면 몇 가지 간단한 확장으로 시작하여 점진적으로 프로그래밍 기술을 향상시킬 수 있습니다.
위 내용은 사용자 정의 PHP 확장을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!