golangでPHP拡張機能を記述する方法

藏色散人
リリース: 2021-03-02 15:46:16
転載
3910 人が閲覧しました

golang の次のチュートリアル コラムでは、golang で PHP 拡張メソッドを記述する方法を紹介します。必要な友人の役に立てば幸いです。

golang PHP 拡張機能を記述する

phper は、php 拡張機能が C/C で記述されていることを知っています。

開発のため C/C を使用します。効率の問題 Golang は php-extension を記述します
Golang の開発効率とエコロジーを最大限に活用して PHP に貢献します。

環境の準備

wsl ubuntu
golang 1.13
php 7.3
ログイン後にコピー

新しいプロジェクト

php7.3 里面的 ext_skel 和以前版本参数不一样,请查看 help 操作
ログイン後にコピー
php:
./ext_skel.php --ext goserver --onlyunix
golang:
 mkdir goserver
ログイン後にコピー

カプセル化ファイル

C ファイルを golang ファイルにカプセル化

package main
/*
 php扩展.C文件内容
*/
import "C"    
func main() {}
ログイン後にコピー

build

$ phpize
$ ./configure
$ CGO_CFLAGS="-g -O2 -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 \  
-I. -DPHP_ATOM_INC \
-I/usr/include/php/20180731/include \  
-I/usr/include/php/20180731/main \
-I/usr/include/php/20180731 \
-I/usr/include/php/20180731/main \  
-I/usr/include/php/20180731/TSRM \  
-I/usr/include/php/20180731/Zend \  
-I/usr/include/php/20180731/ext \  
-I/usr/include/php/20180731/ext/date/lib \  
-DHAVE_CONFIG_H -DCOMPILE_DL_GOPHP -fPIC -DPIC" \  
CGO_LDFLAGS="-Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-all -Wl,-z,nodelete" \  
go build -p 1 -gcflags "-l" -buildmode=c-shared -o modules/goserver.so goserver.go
ログイン後にコピー
CGO コンパイル パラメータ 実際の状況に応じて入力します。生成された Makefile ファイルでパラメータを確認できます。

run

php.ini を変更し、extension=goserver を追加します。 .so

付属の拡張機能を実行する関数テスト


#

以上がgolangでPHP拡張機能を記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!