前回の Hello World のサンプルプログラムで一通りの PHP Extension の作成手順を見てきました。しかし helloworld() の様に引数も返値も無い関数だけではプログラミング言語として不便ですので今回は PHP と PHP Extension におけるデータタイプの詳細と引数、返値の渡し方について見ていきましょう。 PHP のコードから C言語で書かれたコードへとデータをやり取りする上で「型」についての疑問が浮かび上がります。動的形付けされた PHP の変数を静的に形付けされた C言語で扱うにはどうしたらよいのでしょうか。 まずは、PHP 内部でのデータ表現を知るために PHP のソースを覗いて見ましょう。 php-x.x.x/Zend/zend.h より typedef union _zvalue_value { long lval; /* long value
PHPだけだとやはり遅かったり重かったりする処理があるのでPHPにC言語を組み込んで良いように使ってみようという試み.というわけで,PECLを作ってみたくなったので作ってみましょう.今回はCodegenやらそういう高機能な物は使わず(というよりか使い方をまだわからないので),ソースをダウンロードした時にext内に入っているext_skelスクリプトを使ったPECLの作成方法をば.ただ,どちらにしろ情報が少ないのであらぬことを言っていたりすることも多々あるかもなので参考までに. 基礎編 ダウンロードからphpizeまで まずPHPのソースコードをダウンロードしてきます.その中のextの下にext_skelスクリプトがあるので以下のように実行してください.(今回はiwordというPECLを作るのでiwordと書かれた部分は作りたいextension名にしてくださいね.)
PHPには、ストリームラッパーというファイルなどへのアクセスを抽象化するしくみがあります。普段よく使う http:// とかがそうです。 組み込みで提供されるストリームラッパーは以下です。 ファイルシステム HTTP と HTTPS FTP と FTPS PHP 入出力ストリーム 圧縮ストリーム データ (RFC 2397) Glob Phar PHP: Supported Protocols and Wrappers - Manual それぞれどういうふうに使うものなのか試してみました。 ファイルシステム /path/to/file.ext relative/path/to/file.ext fileInCwd.ext C:/path/to/winfile.ext C:\path\to\winfile.ext \\smbserver\share\path\to\winfile.ext f
PHP_FUNCTION(fname) は、以下のようなマクロで、 // main/php.h: #define PHP_FUNCTION ZEND_FUNCTION // Zend/zend_API.h: #define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name)) #define ZEND_FN(name) zif_##name #define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS) // Zend/zend.h: #define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_
導入 † このチュートリアルを読んでいるということは、PHP機能拡張の実装に興味がおありのことと思います。そうでないなら、、、読み終わったときには興味を持ってくれているでしょう。 このチュートリアルはPHPと、そのインタープリター言語であるCにある程度慣れている方を対象としています。 なぜPHP機能拡張が必要か、という話から始めましょう。 言語が持つ生まれつきの抽象度のために、PHPから直接呼び出すことのできないライブラリまたはOSに依存した機能がある。 通常とは違うPHPの使い方をしたい。 PHPのコードをある程度書いたものの、もっと早く、効率的に実行できることが分かっている。 売り物になる素晴らしいコードを書いたが、販売会社がそれを実行できても、ソースを読まれたくない。 どれも全く正当な理由ですが、機能拡張を作るにあたり、機能拡張とは何かを理解する必要があります。 ↑ 機能拡張とは何か
オンラインカジノで遊んでいると、各サイトに「プロバイダー」とやらのロゴが 並んでいることに気がついたことがある人も、多いことでしょう。本記事ではそのゲームプロバイダーについて、人気の会社も含めてご紹介します。 オンラインカジノのゲームプロバイダーとは? オンラインカジノで遊ぶことに慣れてくると、気になってくるのが「ゲームプロバイダー」の存在です。ゲームプロバイダーとは、オンラインカジノで遊べるようなデジタルゲームを開発している会社のことです。「ゲーム配信会社」、または、単純に「プロバイダー」とも呼ばれます。 ゲームの特色や内容はやはり、このプロバイダーによりかなり左右されます。以下にご紹介しているプロバイダーの大半が、ミスティーノのようなサイトにゲームを提供しています。 […] 今日はちょっと、普通のプログラミングとは毛色の違ったプログラミング、ゲーム開発の話について書きたいと思います。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く