今回は PHP Extension でクラスを実装する方法を紹介します。 クラスと言えばオブジェクト指向によるプログラミングに欠かせないシステムであり、PHP にももちろんこの仕組みが用意されていることはご存じかと思います。 クラスを実装するにあたり、インスタンス、プロパティ、メソッドなどと言ったキーワードが登場してきますが、これらをどの様にして PHP Extension で実装していくかを見ていきましょう。 最初は PHP4 と PHP5 での PHP Extension の実装方法の違いなども紹介していくつもりだったのですが、PHP4 と PHP5 でクラスに関する仕様が大きく変わっており PHP Extension の実装方法もまた大きく異なっていることを知りました。残念ながら今回は PHP5 での実装方法に限定させた頂きます。 クラス設計 まず最初に今回どの様なクラスを作成するか
前回の 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 で汎用的なライブラリを作成するフレームワークには大きく分けて2種類あるようです。 ひとつは PEAR のように PHP でクラスライブラリを作る方法、もう一つが今回紹介する PECL の様に PHP 自体を拡張するモジュールを書く方法です。 なぜ PHP Extension ? ひとつは、過去に C で書かれた既存のライブラリを流用したい場合に PHP Extension を作成すれば自然に PHP のコードに結合することが出来ます。また、PEAR の様に PHP で書いたコードと比べると若干高速になります。 それでは実際に helloworld という名前の PHP Extension を作成してみましょう。PHP のソースを展開すると php-x.x.x/ext というディレクトリがありますので $ cd php-x.x.x/ext $ ./ext_skel --extname
We create innovative and individual web development solutions and mobile apps. Our high levels of expertise, many years of experience and unique culture mean that our work has won over not just our customers, but also many competition judging panels. From a vision workshop to technical support: as a digital agency, we develop proposed solutions and implement them efficiently using agile, user-cent
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く