이 글의 내용은 PHP 확장 개발 중 첫 번째 확장인 hello world의 작성을 공유하는 것입니다. 이는 특정 참조 가치가 있습니다. 필요한 친구가 이를 참조할 수 있습니다.
PHP 확장은 고급 PHP 프로그래머가 갖추어야 할 기술 중 하나입니다. 이해해야 합니다. 초보 PHP 확장 개발자가 어떻게 성숙한 확장을 개발하고 PHP 개발의 고급 분야에 들어갈 수 있습니까? 이 개발 튜토리얼 시리즈는 초보 단계부터 고급 단계까지 단계별로 안내합니다.
이 튜토리얼 시리즈는 Linux(centos 권장)에서 개발되었으며 PHP 버전은 5.6이며 Linux, git 작업 및 c/c++ 기초에 대한 특정 경험이 있다고 가정합니다.
질문이 있거나 소통이 필요한 경우 QQ 기술 교류 그룹 32550793에 가입하여 저와 소통하세요.
우리는 사용하기 쉬운 PHP-CPP 프레임워크를 사용하여 PHP 확장을 개발합니다. 특정 Linux 운영 경험과 C++ 기반이 있는 경우 아래 단계를 따르면 10분 이내에 첫 번째 확장을 만들 수 있습니다. 나오다.
다음 데모 작업은 Linux CentOS 시스템에서 모두 완료되었으며 php5.6 시리즈가 미리 설치되어 있습니다.
PHP-CPP를 사용하여 자신만의 PHP 확장을 컴파일하려면 먼저 PHP-CPP의 소스 코드를 다운로드하고 컴파일하고 설치해야 합니다.
PHP-CPP에는 PHP-CPP(새 버전)와 PHP-CPP-LEGACY라는 두 가지 프레임워크 소스 코드가 있습니다.
PHP-CPP(새 버전)는 PHP-7 확장 개발에 적합하고, PHP-CPP-LEGACY는 5. 확장 버전 개발에 적합합니다.
아래 작업에서는 PHP-CPP-LEGACY를 예로 들어 보겠습니다.
git 명령을 알고 있다면 터미널 명령줄에 다음 git 명령을 직접 입력할 수 있습니다.
# git clone https://github.com/CopernicaMarketingSoftware/PHP-CPP-LEGACY.git
git을 모르셔도 상관없습니다. 소스코드의 github Warehouse URL을 브라우저로 직접 열어보시고, 소스코드 압축 패키지를 다운로드 받아 압축을 풀어보세요. Warehouse URL은
https:/입니다. /github.com/CopernicaM....
다운로드가 완료되면 PHP-CPP-LEGACY의 소스코드 디렉토리에 들어가서 make 명령어를 입력해 소스코드를 컴파일하면 개발 확장에 필요한 관련 클래스 라이브러리가 생성됩니다.
# make
그런 다음 make install 명령을 실행하여 생성된 클래스 라이브러리 및 관련 개발 헤더 파일을 Linux 시스템에 설치합니다. 확장 프로그램이 컴파일되면 헤더 파일 및 클래스 라이브러리 디렉터리를 구성하지 않고도 자동으로 연결됩니다.
# sudo make install
첫 번째 확장 helloworld의 소스 코드는 git 명령으로 직접 복제하거나 수동으로 다운로드할 수 있습니다.
# git clone https://github.com/elvisszhang/phpcpp_helloworld.git
helloworld 소스 코드 디렉터리에 들어가서 main.cpp를 열면 다음 코드 구조를 볼 수 있으며 모두 중국어 주석이 추가되어 있습니다.
가장 중요한 것은 확장의 진입 함수인 get_module 함수입니다.
#include <phpcpp.h> #include <iostream> //这是PHP里面可以调用的接口函数 void say_hello() { //输出一段欢迎 Php::out << "hello world from my first extension" << std::endl; } /** * 告诉编译器get_module是个纯C函数 */ extern "C" { /** * 本函数在PHP进程一打开就会被访问,并返回一个描述扩展信息的PHP结构指针 */ PHPCPP_EXPORT void *get_module() { // 必须是static类型,因为扩展对象需要在PHP进程内常驻内存 static Php::Extension extension("helloworld", "1.0.0"); //这里可以添加你要暴露给PHP调用的函数 extension.add<say_hello>("say_hello"); // 返回扩展对象指针 return extension; } }
test.php는 확장 테스트에 사용되는 PHP 코드 조각입니다.
<?php say_hello();
이 확장을 컴파일하는 것은 매우 간단합니다. 터미널 명령줄에 make 명령을 입력하기만 하면 됩니다.
# make g++ -Wall -c -O2 -std=c++11 -fpic -o main.o main.cpp g++ -shared -o helloworld.so main.o -lphpcpp
예상대로 소스 디렉터리에 helloworld.so 확장 파일이 표시됩니다. 이 파일은 14K로 매우 작습니다.
하지만 이제 php -m 명령을 입력하면 helloworld 확장이 PHP 운영 환경에 설치되지 않았기 때문에 PHP 모듈에 포함되지 않은 것을 알 수 있습니다.
여기서는 수동으로 확장 프로그램을 설치하는 방법을 임시로 소개하겠습니다.
1단계: 먼저 php-config 명령을 사용하여 확장 프로그램이 저장된 위치를 확인하세요
# php-config --extension-dir /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226
위는 내 서버에서 확장 프로그램이 설치된 위치를 보여줍니다.
2단계: 그런 다음 helloworld.so를 확장 저장소 디렉터리에 복사합니다.
# cp helloworld.so /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/
3단계: php.ini 파일 수정 및 helloworld 확장 활성화
php.ini 파일을 열고 다음 구성 항목을 추가한 후 php.ini의 아무 곳에나 새 줄을 추가합니다.
extension = helloworld.so
4단계: helloworld 확장이 성공적으로 설치되었는지 확인하세요
php -m 명령을 사용하여 현재 PHP에 설치된 모든 확장을 확인하세요.
# php -m | grep helloworld helloworld
위 명령줄의 응답으로 판단하면 helloworld 확장 프로그램이 성공적으로 설치된 것입니다.
5단계: test.php를 실행하여 등록 기능을 사용할 수 있는지 확인
또는 확장 프로그램의 소스 코드 디렉터리에서 다음 명령을 실행합니다.
# php test.php hello world from my first extension
위 명령줄의 응답에서 등록했습니다. 확장을 통해 PHP로 say_hello 함수가 성공적으로 실행되었습니다. 그런데 현재 확장은 인사만 할 수 있고 더 많은 일을 할 수 있도록 개선하겠습니다.
PHP-CPP 설치 및 hello world
PHP-CPP 공식 홈페이지 튜토리얼
관련 추천 :
위 내용은 PHP 확장 개발: 첫 번째 확장 Hello World 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!