Enviar búsqueda
Cargar
PHPの拡張モジュールをGoで作る
•
9 recomendaciones
•
11,223 vistas
Yoshio Hanawa
Seguir
Go Conference 2015 Winter 発表資料
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 18
Descargar ahora
Descargar para leer sin conexión
Recomendados
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Yoshio Hanawa
Recomendados
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
Yoshio Hanawa
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
Yoshio Hanawa
PHPNGの動向
PHPNGの動向
Yoshio Hanawa
PHP7の内部実装から学ぶ性能改善テクニック
PHP7の内部実装から学ぶ性能改善テクニック
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
zval をダイエットしてみた
zval をダイエットしてみた
Yoshio Hanawa
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
php-timecopを実戦投入してみた
php-timecopを実戦投入してみた
Yoshio Hanawa
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
たのしい独自フレームワーク
たのしい独自フレームワーク
Kenta USAMI
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
エンジニア勉強会 エスキュービズム
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
y-uti
PHPエクステンションの開発tips
PHPエクステンションの開発tips
Yoshio Hanawa
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
Takashi Uemura
Phpstormちょっといい話
Phpstormちょっといい話
Hisateru Tanaka
PSGIへの誘い
PSGIへの誘い
azuma satoshi
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
Yasuo Ohgaki
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Masataka Kono
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
Más contenido relacionado
La actualidad más candente
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
たのしい独自フレームワーク
たのしい独自フレームワーク
Kenta USAMI
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
エンジニア勉強会 エスキュービズム
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
y-uti
PHPエクステンションの開発tips
PHPエクステンションの開発tips
Yoshio Hanawa
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
Takashi Uemura
Phpstormちょっといい話
Phpstormちょっといい話
Hisateru Tanaka
PSGIへの誘い
PSGIへの誘い
azuma satoshi
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
Yasuo Ohgaki
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
takenao
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Masataka Kono
La actualidad más candente
(20)
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPの今とこれから2015
PHPの今とこれから2015
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
たのしい独自フレームワーク
たのしい独自フレームワーク
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
PHPエクステンションの開発tips
PHPエクステンションの開発tips
RFC: "var" Deprecation
RFC: "var" Deprecation
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
WordPress 多言語化プラグインqTranslateの紹介
WordPress 多言語化プラグインqTranslateの紹介
Phpstormちょっといい話
Phpstormちょっといい話
PSGIへの誘い
PSGIへの誘い
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Destacado
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
Yoshio Hanawa
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Yoshio Hanawa
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
Go conference 2015_winter
Go conference 2015_winter
matsuo kenji
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
株式会社YEBIS.XYZ
私なりのGo言語のご紹介
私なりのGo言語のご紹介
Ryuji Iwata
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
Yosuke Furukawa
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
SQLite2と3のエスケープ関数の違いとその対策
SQLite2と3のエスケープ関数の違いとその対策
Akishige TAKEKOSHI
php7's ast
php7's ast
do_aki
Zend framework 3 と zend expressive の話
Zend framework 3 と zend expressive の話
Satoru Yoshida
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Yuji Otani
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
Go言語オーバービュー201507
Go言語オーバービュー201507
エンジニア勉強会 エスキュービズム
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Yoshio Hanawa
Destacado
(20)
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
家庭用ブロードバンドルータ上でWordPressを動かそう
家庭用ブロードバンドルータ上でWordPressを動かそう
realpathキャッシュと OPcacheの面倒すぎる関係
realpathキャッシュと OPcacheの面倒すぎる関係
Laungage Update PHP編
Laungage Update PHP編
Go conference 2015_winter
Go conference 2015_winter
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
私なりのGo言語のご紹介
私なりのGo言語のご紹介
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
SQLite2と3のエスケープ関数の違いとその対策
SQLite2と3のエスケープ関数の違いとその対策
php7's ast
php7's ast
Zend framework 3 と zend expressive の話
Zend framework 3 と zend expressive の話
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Go言語オーバービュー201507
Go言語オーバービュー201507
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
Similar a PHPの拡張モジュールをGoで作る
Golang handson
Golang handson
Ryuto Yasugi
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
Gopenflow demo v1
Gopenflow demo v1
Hiroaki Kawai
Xhprof
Xhprof
Hisashi Aruji
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!
Sho A
PHP でも活用できる Makefile
PHP でも活用できる Makefile
Shohei Okada
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
johgus johgus
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)
Hiroyuki Ishiyama
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
Air forandroidreader
Air forandroidreader
Noboru Ootsuka
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
SENSY Inc
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
azuma satoshi
php-src の歩き方
php-src の歩き方
do_aki
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent Bit
Seiya Mizuno
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
Composerはじめました
Composerはじめました
Takashi Nojima
PyPy 紹介
PyPy 紹介
shoma h
Similar a PHPの拡張モジュールをGoで作る
(20)
Golang handson
Golang handson
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
Gopenflow demo v1
Gopenflow demo v1
Xhprof
Xhprof
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Let’s translate FuelPHP docs!
Let’s translate FuelPHP docs!
PHP でも活用できる Makefile
PHP でも活用できる Makefile
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Air forandroidreader
Air forandroidreader
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
php-src の歩き方
php-src の歩き方
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent Bit
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
Composerはじめました
Composerはじめました
PyPy 紹介
PyPy 紹介
Más de Yoshio Hanawa
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Yoshio Hanawa
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Yoshio Hanawa
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
Yoshio Hanawa
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
Yoshio Hanawa
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
Yoshio Hanawa
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
Yoshio Hanawa
GitHubからお金をもらった話
GitHubからお金をもらった話
Yoshio Hanawa
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
Yoshio Hanawa
PHPの正規表現と最長一致
PHPの正規表現と最長一致
Yoshio Hanawa
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
Yoshio Hanawa
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
PHPで時間旅行をする方法
PHPで時間旅行をする方法
Yoshio Hanawa
Más de Yoshio Hanawa
(14)
自宅の消費電力をリアルタイムに グラフ化してみた
自宅の消費電力をリアルタイムに グラフ化してみた
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Zend VMにおける例外の実装
Zend VMにおける例外の実装
ぼくのかんがえる さいきょうの銀行振込
ぼくのかんがえる さいきょうの銀行振込
「OKグーグル! 銀行振込1000円」
「OKグーグル! 銀行振込1000円」
浮動小数点数とOSSのバグの話
浮動小数点数とOSSのバグの話
PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
GitHubからお金をもらった話
GitHubからお金をもらった話
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
iOS/macOSとAndroid/Linuxのサンドボックス機構について調べた
PHPの正規表現と最長一致
PHPの正規表現と最長一致
浮動小数点数の話 2013年度版
浮動小数点数の話 2013年度版
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Testing PHP extension on Travis CI
Testing PHP extension on Travis CI
PHPで時間旅行をする方法
PHPで時間旅行をする方法
PHPの拡張モジュールをGoで作る
1.
Writing PHP extension
in Go PHPの拡張モジュールを Goで作る Go Conference 2015 Winter (2015/12/5) 発表資料
2.
自己紹介 ❖ @hnw ❖ KLab株式会社所属 ❖
PHPの方から来ました
3.
基本的にcgoの話です ご安心ください
4.
cgoとは ❖ Goのコメント部でCプログラミングする仕組み ❖ コンパイラオプション ❖
リンカオプション ❖ Cプログラム本体
5.
PHP拡張モジュールとは ❖ PHP起動時にロードすることでPHPに機能追加を行う ❖ 通常はC言語で記述する ❖
PHPのクラスや関数を実装できる ❖ 実体は共有ライブラリ
6.
PHP拡張モジュールとは ❖ PHP起動時にロードすることでPHPに機能追加を行う ❖ 通常はC言語で記述する ❖
PHPのクラスや関数を実装できる ❖ 実体は共有ライブラリ ❖ Go 1.5から共有ライブラリが出力できる ❖ PHPからGo資産を使う未来…?
7.
大方針:GoとCを併用 ❖ 現時点ではGoだけで全部書くのは難しい ❖ Goで共用体をうまく扱えない点が一番ネック ❖
将来的にはGoだけで書いた方が楽になりそう
8.
具体的な手順(1) ❖ PHPで普段通りに拡張モジュールを作る ❖ PHPのext_skelでひな形を作る ❖
関数をCで実装する ❖ 関数内でGoで作った関数を呼び出す ❖ 拡張モジュールを静的ライブラリとしてビルドする ❖ cgoでgoコードとリンクして共有ライブラリにする
9.
具体的な手順(2) $ phpize! $ perl
-i.bak -pe 's/^enable_static=no/ enable_static=yes/;' ./configure! $ ./configure! $ make! $ mv modules/phpimpl.a modules/libphpimpl.a! $ go build -buildmode=c-shared -ogoext.so goext.go! $ install goext.so $(php-config --extension-dir) ❖ 結構つらかった…
10.
❖ 静的ライブラリを-lでリンクする ❖ リンク時に解決できないシンボルがあっても無視 cgoの環境変数の指定 /*! #cgo
LDFLAGS: -L${SRCDIR}/modules -lphpimpl ! -undefined dynamic_lookup! */
11.
PHP関数からGo関数を呼びだす PHP_FUNCTION(fib)! {! ! int n;! !
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &n) == FAILURE) {! ! ! return;! ! }! ! RETURN_LONG(fib(n));! }
12.
❖ exportを指定すればC関数から呼び出せる 呼び出される側のGo関数 //export fib! func
fib(n int) int {! ! if n < 2 {! ! ! return n! ! }! ! return fib(n-2) + fib(n-1)! }
13.
❖ PHP関数 phpversion()
を呼び出す例 ❖ マクロが使えないけど、そこそこ戦える! GoからPHP関数を呼びだす var retval C.zval! C.zend_call_method(nil, nil, nil, C.CString("phpversion"),! C.size_t(len("phpversion")),! &retval, 0, nil, nil)
14.
ノウハウ ❖ 現在のcgoの制限 ❖ Cマクロが使えない ❖
共用体がうまく扱えない ❖ 型の変換などはPHP側(C実装側)でやるべき ❖ PHPはマクロも共用体も多用しているため ❖ 必要ならマクロ関数のラッパー実装を作る
15.
❖ Go側のmain関数は呼ばれないけど必須 ❖ main関数内でPHP側のC関数を呼び出しておく ❖
Go側で使っていないとリンクしてくれない ビルド時の苦労(1) func main() {! /* PHP extensionの*.oをリンクするためのトリック */! C.get_module()! }
16.
ビルド時の苦労(2) ❖ GoもPHPも他の言語との連携を考慮していない印象 ❖ 現時点ではmake一発みたいな状態ではない ❖
Autoconfに寄せたいけど面倒そう…
17.
まとめ ❖ PHPの拡張モジュールをGoで記述できた ❖ cgoで*.soをビルド ❖
PHPとGoとで双方向に呼び出せた ❖ Go→PHPは気軽とは言えない ❖ 詳細はブログ記事に書きます
18.
ご静聴 ありがとう ございました
Descargar ahora