タグ

PECLに関するahikorのブックマーク (21)

  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • Extension Writing Part III: Resources

    Introduction Resources Initializing Resources Accepting Resources as Function Parameters Destroying Resources Destroying a Resource by Force Persistent Resources Finding Existing Persistent Resources Sanity Check Summary Introduction Up until now, you've worked with concepts that are familiar and map easily to userspace analogies. In this tutorial, you'll dig into the inner wo

  • Extension Writing Part II: Parameters, Arrays, and ZVALs

  • Extension Writing Part II: Parameters, Arrays, and ZVALs [continued]

  • Extension Writing Part I: Introduction to PHP and Zend

  • PHP5を試してみる - SimpleXML関数でRSSしてみる - Do You PHP?

    PHPマニュアル XCVIII. SimpleXML関数より。。。このモジュールは、 実験的なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。 サンプルは、EXPERIENCEで実際に確認できるようにしてますので、気になる方は見てみてください。 XML操作を考えた場合、PHP4まではDOMあるいはSAXということになりますが、 DOMは面倒 SAXは複雑なXMLを扱いにくい といった問題があります。ここでは、PHP5から追加された簡単にXMLファイルを扱うための「SimpleXML関数」について試してみました。 以前に、Relaxerを参考にXMLアクセスクラスを自動生成してみましたが、SimpleXML関数も基的に

  • PHPでJSON - Do You PHP?

    [2006/10/31] php-jsonはPHPのソースツリーに取り込まれ、PHP5.2.0からデフォルトで組み込まれるようになります。 Web2.0の盛り上がりに連れてますます盛り上がっているAJAXですが、非同期通信でやりとりされるデータフォーマットとしては、 XML形式 JSON(JavaScript Object Notation)形式 があります。以前AJAXのサンプルを作ったときはデータはXML形式でしたが、(今更ですが)今回はJSONを色々試してみます。 PHPでJSONを扱う場合、現時点で以下の二つのモジュールがよく知られています。いずれも配列・連想配列などをJSON形式へ変換する機能を提供しています。 PEAR::Services_JSON php-json 今回はこれらのインストール手順のまとめと簡単な動作サンプルの作成、前回の郵便番号検索をそれぞれのJSONに焼き直

  • mRss拡張モジュールでRSSしてみる - Do You PHP?

    mRss拡張モジュールでRSSしてみる ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 PHP-usersネタです。今まで、SAX関数やDOM関数、PEAR::XML_RSSを使ってそれぞれRSSを取得・表示してみましたが、今回はmRssライブラリを使ったモジュールがあるということで試してみました。 libmrss: mRss Library 上鍵さんの投稿にもあるとおり、mRss自体はCのライブラリとして提供されていますが、PHP拡張モジュールに変換するスクリプトも含まれています。また、RSS2.0にも対応していることが特徴的です (0.91, 0.92, 1.0, 2

  • PEAR::CodeGen_PECLを使ってPECLモジュールを作ってみる - Do You PHP?

    PEARにはいろいろなライブラリが整備されていますが、PhpDocumentorやPHP_BeautifierなどPHPアプリケーションの開発を手助けするものもあります。変わり者として、PHP自体。。。といってもPECLモジュールになりますが、開発を手助けするパッケージがあります。これがPEAR::CodeGen_PECLです。 PEAR :: Package :: CodeGen_PECL PEAR::CodeGen_PECLはPHP5専用のパッケージで、specファイルと呼ばれるXMLファイルから、PECLモジュールを作るのに必要な各種ファイルを生成してくれるツールで、PECLモジュールのCソースやヘッダファイルのひな形も出力してくれます。 PECLモジュールは基的にC/C++で書かれていますが、モジュールの初期化や関数・クラスの定義、パラメータの取扱などに多くの「お約束事」がありま

  • XCacheを導入してみる - 第3のキャッシュモジュール - Do You PHP?

    XCacheを導入してみる - 第3のキャッシュモジュール PHPで構築されたアプリケーションの高速化には、キャッシュモジュールが半ば必須のような感じになってきていますが、先日まとめたPECLのAPCやeAccelerator以外に、ここ最近知られてくるようになったXCacheがあります。2006年11月にGIGAZINEで紹介記事が出たのでご存じの方も多いと思います。 XCache PHPアクセラレータで一番高速なのはどれか? - GIGAZINE XCacheは、先日まとめたAPCやeAcceleratorのように、PHPの中間コードのキャッシュや最適化といった機能を持つ拡張モジュールです。その他の特徴としては、Xdebugのようなカバレッジ機能を持つことが挙げられます。また、APCやeAcceleratorと同様にWebインターフェースも用意されています。 サイトのNewsを見てみ

  • eAcceleratorを導入してみる - Turck MMCacheの後継 - Do You PHP?

    eAcceleratorを導入してみる - Turck MMCacheの後継 すでにご存じの方も多いですが、サードパーティー製のキャッシュ拡張モジュールであるTurck MMCacheは長い間休止状態にあります。そのTurck MMCacheから分岐したプロジェクトがeAcceleratorです。そのため、eAcceleratorは機能的にもTurck MMCacheと非常によく似ています。 ということで今までまとめてこなかったのですが、2006/10/11にリリースされた0.9.5からちょっと変わってきているので、変更点を中心にざっとまとめてみました。 eAccelerator: PHP Accelerator, optimizer, dynamic content cache - Trac 使用した環境 まずは試した環境ですが、CentOS4.4+PHP5.1.6・PHP5.2.0で

  • APC(Alternative PHP Cache)再び - Do You PHP?

    PECLに登録されているAPC(Alternative PHP Cache)は、PHPの中間コードのキャッシュや最適化を行う拡張モジュールです。APCは前に触ったことがあり、それがいつだったか調べてみたら、なんと2002年3月!使っていた環境は、PHP4.1.1+APC1.1.0。。。にもかかわらず、何だかGIGAZINEからリンクされているようで、リンク先としては結構恥ずかしいかも。。。 ということで、再度ざっとまとめることにしました。 PECL :: Package :: APC 使用した環境 まずは確認環境ですが、CentOS4.4+PHP5.2.0です。PHPは以下のようなconfigureオプションを付けてソースからbuildしています。 ●PHP5.2.0のconfigureオプション--with-apxs2=/usr/local/apache2/bin/apxs \ --pr

  • PECL::interceptを試してみる - Do You PHP?

    Javaの世界(?)ではDIコンテナに絡んでAOP(Aspect Oriented Programming)が注目を集めています。以前、PECLのサイトでいろいろと物色をしていると、「intercept」という文字が。。。「ん?AOP絡みか?」と思い見てみると、説明として「Intercept function/method calls」とありました。「ひょっとして、今までよりも簡単にAOPができるかも?」ということで今回試してみました。 PECL :: Package :: intercept 2006/05/06時点の最新版は0.3.0αです。なお、このリリースが2005/05/28と約1年前というのがちょっと気になりますが。。。 使用した環境 まずは試した環境ですが、PHPは以下のようなconfigureオプションを付けたPHP5.1.4です。interceptのページを見る限りPHP

  • PECL::filterを試してみる - Do You PHP?

    [2006/10/31] filter拡張モジュールはPHP5.2.0からデフォルトで組み込まれます(バージョン0.11.0相当)。また、記事で使用したfilter 0.9.4とPHP5.2.0やfilter 0.11.0ではAPIがかなり変わっていますので、注意が必要です。APIの詳細はPHPマニュアルにもありますので、参照してください。 入力値のチェックは通常PHPスクリプト側で行うと思います。また、汎用ライブラリとしてPEARみたいにライブラリ化されているものもありますが、PECLでもフィルターモジュールが最近(と言っても2005年10月頃ですが)用意されています。以前から知っていたのですが、PHPマニュアルにもドキュメント化された事もあり、使い方を知っておくためにざっくりと触ってまとめてみました。 PECL :: Package :: filter なお、2006/05/05時点

  • PECL::ssh2を使ってみる

    PECL::ssh2を使ってみる PHPを使ってバッチスクリプトなどを作る際、ファイル転送といえば今まではftp経由が主流(?)かと思いますが、昨今のセキュリティに対する意識向上から何らかの暗号化を施したい場合があります。2005年の初めにPECLにssh2拡張モジュールが登録されマニュアルもそれなりにこなれてきましたので、今更ながら試してみました。 PECL :: Package :: ssh2 今回のゴールは、PHP4.3.11で公開鍵認証を使ってリモートコマンドの実行とファイル転送を行う、というものです。 インストール まずはインストールした環境ですが、PHPは以下のようなconfigureオプションを付けたPHP4.3.11です。 ●PHP4.3.11のconfigureオプション --with-apxs2=/usr/local/apache2/bin/apxs \ --pref

  • PHP で JSON 関連 (groundwalker.com)

    omar kilani - projects - php-json : PECL な JSONライブラリ。PHP 体に 5.2.0 で取り込まれたが、PHP4 でも使える(参照:PECL :: Package :: json)PEAR の JSON.php(↓のヤツ)より 153倍高速だと言っている PEAR :: PEPr :: Details :: Services_JSON : PEAR な JSONライブラリ。 $php_array= array( 'id'=>'foobar', 'item'=> array( 'data1'=>32, 'data2'=>'content', ), ); をエンコードするには、 php-json(pecl) $json_data=json_encode($php_array); Services_JSON(pear) $json = new Se

  • PEAR: : CodeGen_PECLでPHP拡張を書いてみよう(その1)

    (この記事は随時更新していきます) SennaのPHPバインディングのページに、PHPバインディングを希望する声が続々! http://qwik.jp/senna/PHP_binding.html 実は、以前PHPバインディングを書いていたののの、 rm -rfですべてを消し去るというステキな行為をやらかしてしまったのでした。 で、新たにPHPバインディングを書き直していたのですが、 どうやら以下の記事によると、PEAR::CodeGen_PECLっていう便利なものがあるらしい。 ■[PEAR]PEAR::CodeGen_PECL事始め http://d.hatena.ne.jp/shimooka/20061030/1162200754 というわけで、 PEAR::CodeGen_PECLを使ってSennaのPHPバインディングを書く過程を記録に残してみます。 日語の情報は少ないようなの

    PEAR: : CodeGen_PECLでPHP拡張を書いてみよう(その1)
  • PHP Extension を作ろう第3回 - クラスを作ろう : DSAS開発者の部屋

    今回は PHP Extension でクラスを実装する方法を紹介します。 クラスと言えばオブジェクト指向によるプログラミングに欠かせないシステムであり、PHP にももちろんこの仕組みが用意されていることはご存じかと思います。 クラスを実装するにあたり、インスタンス、プロパティ、メソッドなどと言ったキーワードが登場してきますが、これらをどの様にして PHP Extension で実装していくかを見ていきましょう。 最初は PHP4 と PHP5 での PHP Extension の実装方法の違いなども紹介していくつもりだったのですが、PHP4 と PHP5 でクラスに関する仕様が大きく変わっており PHP Extension の実装方法もまた大きく異なっていることを知りました。残念ながら今回は PHP5 での実装方法に限定させた頂きます。 クラス設計 まず最初に今回どの様なクラスを作成するか

    PHP Extension を作ろう第3回 - クラスを作ろう : DSAS開発者の部屋
  • PHP Extension を作ろう第2回 - 引数と返値 : DSAS開発者の部屋

    前回の Hello World のサンプルプログラムで一通りの PHP Extension の作成手順を見てきました。しかし helloworld() の様に引数も返値も無い関数だけではプログラミング言語として不便ですので今回は PHPPHP Extension におけるデータタイプの詳細と引数、返値の渡し方について見ていきましょう。 PHP のコードから C言語で書かれたコードへとデータをやり取りする上で「型」についての疑問が浮かび上がります。動的形付けされた PHP の変数を静的に形付けされた C言語で扱うにはどうしたらよいのでしょうか。 まずは、PHP 内部でのデータ表現を知るために PHP のソースを覗いて見ましょう。 php-x.x.x/Zend/zend.h より typedef union _zvalue_value { long lval; /* long value

    PHP Extension を作ろう第2回 - 引数と返値 : DSAS開発者の部屋
  • PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋

    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

    PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋