SlideShare a Scribd company logo
1 of 25
Download to read offline
PHPマニュアルの
    読みかた
(拡張モジュール編)
TAKAGI Masahiro <takagi@php.net>
自己紹介
PHPマニュアルの人
http://www.php.net/manual/ja/preface.php#contributors
お題
PHPの拡張に関する
   情報源
書籍
PHP5徹底攻略エキスパート編

Extending and Embedding PHP(英語)
ウェブサイト
実例で学ぶPHP拡張モジュールの作り方
 http://gihyo.jp/dev/serial/01/php-module

Extension Writing Part I,II,III(英語)
 http://devzone.zend.com/author/4580-SaraMG


PHP Extension Writing(英語)
 http://www.techpresentations.org/PHP_Extension_Writing
それから……
PHPマニュアル
docs.php.net/manual/ja/book.internals2.php
http://
現状
執筆中
(by Gwynne Raskind)
今後の展開に期待 
おまけ
実は……
14章 PHPの拡張
    14.1 アーキテクチャの概要
    14.2 必要なもの
         14.2.1 PHPのソースコード
         14.2.2 開発ツール
    14.3 初めての拡張モジュールの作成
         14.3.1 コマンドライン版のPHP
         14.3.2 作成する拡張モジュールの決定
         14.3.3 拡張モジュールの雛形の作成
         14.3.4 雛形への肉付け
         14.3.5 拡張モジュールのコンパイル
         14.3.6 作成した拡張モジュールのテスト


                                    とりあえず一通りのこと
    14.4 config.m4ファイル
         14.4.1 外部の依存ファイルがない場合
         14.4.2 外部ファイルに依存する場合
    14.5 メモリ管理
    14.6 pval/zvalデータ型
         14.6.1 MAKE_STD_ZVAL()
         14.6.2 SEPARATE_ZVAL()
                                    は解説されている
         14.6.3 zval_copy_ctor()
         14.6.4 アクセス用マクロ群


                                    PHP5以降の機能につい
    14.7 パラメータの処理
         14.7.1 単純な例
         14.7.2 もう少し複雑な例
         14.7.3 可変引数リストを使用する例
    14.8 返り値の処理
         14.8.1 単純な型
         14.8.2 配列
                                    ての解説はない
         14.8.3 オブジェクト
    14.9 参照
    14.10 グローバル変数
         14.10.1 SAPIグローバル(SG)
         14.10.2 エグゼキュータグローバル(EG)
         14.10.3 拡張モジュールグローバル
    14.11 変数の作成
    14.12 拡張モジュールのINIエントリ
    14.13 リソース
    14.14 これから進むべき方向
実は……
タダで読める方法が!
http://books.google.co.jp/
http://books.google.co.jp/
http://books.google.co.jp/
おしまい
でもやっぱり「プログラミングPHP」買ってね。

More Related Content

What's hot

VBScriptのダメなところ~その1~
VBScriptのダメなところ~その1~VBScriptのダメなところ~その1~
VBScriptのダメなところ~その1~
bouzuya
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
Yoshio Hanawa
 
Testing PHP extension on Travis CI
Testing PHP extension on Travis CITesting PHP extension on Travis CI
Testing PHP extension on Travis CI
Yoshio Hanawa
 
WSHで遊ぼう!
WSHで遊ぼう!WSHで遊ぼう!
WSHで遊ぼう!
bouzuya
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
Hirokuma Ueno
 
How to read linux kernel
How to read linux kernelHow to read linux kernel
How to read linux kernel
Naoya Ito
 

What's hot (18)

VBScriptのダメなところ~その1~
VBScriptのダメなところ~その1~VBScriptのダメなところ~その1~
VBScriptのダメなところ~その1~
 
Djangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHueDjangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHue
 
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
第二回サーバー勉強友の会
第二回サーバー勉強友の会第二回サーバー勉強友の会
第二回サーバー勉強友の会
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 
第一回サーバー勉強友の会
第一回サーバー勉強友の会第一回サーバー勉強友の会
第一回サーバー勉強友の会
 
Testing PHP extension on Travis CI
Testing PHP extension on Travis CITesting PHP extension on Travis CI
Testing PHP extension on Travis CI
 
WSHで遊ぼう!
WSHで遊ぼう!WSHで遊ぼう!
WSHで遊ぼう!
 
WordPress のための PHP 超入門
WordPress のための PHP 超入門WordPress のための PHP 超入門
WordPress のための PHP 超入門
 
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたWindows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみた
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
 
hubotで快適BOT生活
hubotで快適BOT生活 hubotで快適BOT生活
hubotで快適BOT生活
 
Chrome extension入門
Chrome extension入門Chrome extension入門
Chrome extension入門
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRi
 
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
 
Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!
 
How to read linux kernel
How to read linux kernelHow to read linux kernel
How to read linux kernel
 

Viewers also liked (9)

eLearning Conference Presentation
eLearning Conference PresentationeLearning Conference Presentation
eLearning Conference Presentation
 
Inleiding robots enigma
Inleiding robots enigmaInleiding robots enigma
Inleiding robots enigma
 
Kleppen Dicht!
Kleppen Dicht!Kleppen Dicht!
Kleppen Dicht!
 
Varen
VarenVaren
Varen
 
De I Pad (R)Evolutie Ieni10
De I Pad (R)Evolutie Ieni10De I Pad (R)Evolutie Ieni10
De I Pad (R)Evolutie Ieni10
 
Analysing the Effectiveness of Social Media
Analysing the Effectiveness of Social MediaAnalysing the Effectiveness of Social Media
Analysing the Effectiveness of Social Media
 
Piece Network 1
Piece Network 1Piece Network 1
Piece Network 1
 
IQPC Presentation
IQPC PresentationIQPC Presentation
IQPC Presentation
 
De Processor In Detail
De Processor In DetailDe Processor In Detail
De Processor In Detail
 

Similar to phpext-2-takagi

なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
Fumito Mizuno
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
 

Similar to phpext-2-takagi (20)

PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
 
PHPの今とこれから2022
PHPの今とこれから2022PHPの今とこれから2022
PHPの今とこれから2022
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
2009 PHP初心者
2009 PHP初心者2009 PHP初心者
2009 PHP初心者
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 

phpext-2-takagi