タグ

ブックマーク / www.doyouphp.jp (38)

  • PHP6関連情報 - Do You PHP?

    スクリプト言語であるPHPOracleの連携の他、XML、オブジェクト指向、デザインパターン、周辺ツールについて、色々と試したり調べたりしたことを備忘録的にまとめて公開

  • PHP6.0.0-devを試してみる - 名前空間のサポート - Do You PHP?

    次期メジャーバージョンであるPHP6をあれこれやってみます。今回は、名前空間のサポートです。 PHP5での導入も検討された名前空間のサポートですが、PHP6でついに導入される事になりそうです。家のメーリングリストでは以前から名前空間の仕様決めで盛んに議論されていましたが、Dmitry Stogov氏の提案を軸としたシンプルなものに固まっていったようです。そして2007/07/12、Dmitry Stogov氏によってついに名前空間をサポートするコード一式が家CVSにcommitされました。2007/07/16現在ではCVSはもちろん、snaps.php.netにあるアーカイブにもそれらのコードが含まれています。 前置きが長くなりましたが、サポートされた名前空間がどんな感じなのか、実際にCVSからソースを取得してbuildしたPHP6-devを使って試した結果をまとめてみました。なお、今

  • PHPでYAMLを扱う - Do You PHP?

    YAMLYAML Ain't Markup Language)は、XMLのような「構造化されたデータ」を表現するためのフォーマットです。XMLは要素(タグ)を使って構造を表しますが、YAMLの場合、主にインデントを使って構造を表します。 YAML Ain't Markup Language XMLは要素(タグ)を使って構造を表しますが、YAMLの場合、主にインデントを使って構造を表します。YAMLの日語での解説は、Rubyist MagazineのYAML入門シリーズが詳しいです。 Rubyist Magazine - プログラマーのための YAML 入門 (初級編) Rubyist Magazine - プログラマーのための YAML 入門 (中級編) Rubyist Magazine - プログラマーのための YAML 入門 (実践編) PHPでは、フレームワークであるSymfon

  • PDO(PHP Data Objects)を試してみる - PDO_OCIは今どんな感じ? - Do You PHP?

    PDO1.0以降、定数が「PDO_xxx」から「PDO::xxx」に変更になっていますので、それ以前のバージョンを使用していた方は注意が必要です。 2005/06/10付けでPHP5.1.0β1がリリースされましたが、標準の拡張モジュールとしてPDOが含まれており、configure時に「--with-pdo-oci」を付けてbuildするようになります。 PHPDBを扱う際、最も一般的な方法としてOCI8やpgsqlmysqlなどの拡張モジュールを使用する方法が上げられますが、DBによってAPIが異なってしまいます。これを抽象化するため、データ抽象化レイヤ(Data Abstraction Layer)に相当する各種ライブラリが多くで回っています。現時点で出回っているライブラリとしては、おそらくデファクトスタンダードであると思われるPEAR::DBや拡張モジュールのdbx、最近流行(

  • PHPUnit2 - 最強のユニットテスト自動化ツール for PHP5 - Do You PHP?

    PHPUnit2 ver.2.3.0 β1からPHP5.1.0β1以降が必要になりますので要注意。 PHP5が正式リリースされてしばらく経ち、実際の開発で使われているという話もぼちぼち聞くようになりましたが、「開発」とくれば「テスト」は避けされませんね。最近の流行(?)としてはxUnitシリーズを利用して単体テストを行う場面が多いと思いますが、PHP5用としてはPHPUnit2がPEARに登録されています。 PHPUnit - A PHP Regression and Unit Test Framework(Sebastian Bergmann氏のサイト。デザインが変わりましたね) PEARのPHPUnit2のページ PHPUnit2は機能的にJUnit3.8.1とJUnitour1.2を組み合わせたモノになっていて、基的にCLI版となっています。また、PHP4向けのPHPUnitにはな

  • Phing2 - PHP版Ant for PHP5 - Do You PHP?

    先日PHP4用のPhingネタを取り上げましたが、今回はPHP5用です。2005/08/25現在の現行系列Phing2.xから独立してPHP5専用になっています。最新バージョンver.2.1.0です。 今回はPHP4版と異なる インストール手順 動作確認 サンプルの実行と結果(PHPUnit2中心) を中心にまとめてみました。 インストール手順 まずはインストールした環境ですが、PHPは以下のようなconfigureオプションを付けたPHP5.0.4です。 ●PHP5.0.4のconfigureオプション --with-apxs2=/usr/local/apache2/bin/apxs \ --prefix=/usr/local/lib/php5 \ --with-pear=/usr/local/lib/php5/pear \ --with-config-file-path=/usr/l

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

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

  • PHP5関連情報 - Do You PHP?

    スクリプト言語であるPHPOracleの連携の他、XML、オブジェクト指向、デザインパターン、周辺ツールについて、色々と試したり調べたりしたことを備忘録的にまとめて公開

  • 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に焼き直

  • Ajax(エイジャックス)とPHPの連携 - Do You PHP?

    最近Hotな(死語?)話題としてAjax(「Asynchronous JavaScript + XML」の略:エイジャックス)があります。 Ajax: A New Approach to Web Applications [邦訳]Ajax: Web アプリケーション開発の新しいアプローチ javascript:xmlhttprequest Using the XML HTTP Request object Ajaxとアクセシビリティ Ajaxを使用した有名なアプリケーションとしては、Google Gmail、Google Mapsが知られていますが、サンプルを紹介している日語サイトとしては以下のものがあります。 Google Mapを利用したシカゴの犯罪マップ Ajaxを利用したアプリケーション Ajax を使った KWIC (KeyWord In Context) これらのサイトのアプ

  • 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

  • Do You PHP? - PEARのXML_RSSでRSSしてみる

    ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 [2004/08/12] PHP5.0.0ではphp.iniの設定を行っても「?」に化けてしまいます。とりあえず、RSS.phpの130行目あたりにある「$this->XML_Parser();」を「$this->XML_Parser('utf-8');」とすることで解決します。また、PHP5.0.1-devで修正されているようです。haltさん、情報ありがとうございました。 [2004/07/20] PHP4でマルチバイト文字が「?」に化ける場合、php.iniのmbstring.languageがJapaneseになってい

  • XMLパーサ(SAX)でRSSしてみる - Do You PHP?

    ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 最近では以前ほど「XMLブーム」が感じられなくなりましたが、ひょっとするとこのRSSで再発火(?)するかも知れない、と思ってたりします。 PEARにもXML_RSSクラスが用意されているようで、SAXタイプのようです。XML_RSSの方がコードが非常にすっきり書けます。 RSS(RDF Site Summary)とは、XML関連使用の1つで、これを利用することにより「共通の書式でドキュメントの見出し、要約などのリストを提供することで、サイトの更新情報などを効率的に公開できる(The Web KANZAKIより引用)」ようになり

  • DOMXMLでRSSしてみる - Do You PHP?

  • PHP4.3.0でのXMLアクセスクラスの自動生成 - 目指せ(!?)Relaxer - Do You PHP?

    PHP4.3.0でのXMLアクセスクラスの自動生成 - 目指せ(!?)Relaxer ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 zip形式 tgz形式 [2004/01/30] PHP5からSimpleXML関数が追加されますが、こちらもXMLをオブジェクトとして扱える関数が揃っています PHPマニュアル より。。。注意: この拡張は実験的なものではありません。しかしながら、PHP 5 では決してリリースされないでしょう。また、PHP 4 でのみ配布されます。 もし PHP 5 でDOM XML をサポートする必要がある場合、 DOM 拡張を使用することができます。

  • PHP4.3.0でのDOM XML - Do You PHP?

    ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 [2004/01/30] PHP5からSimpleXML関数が追加されますが、こちらもXMLをオブジェクトとして扱える関数が揃っています PHPマニュアル より。。。注意: この拡張は実験的なものではありません。しかしながら、PHP 5 では決してリリースされないでしょう。また、PHP 4 でのみ配布されます。 もし PHP 5 でDOM XML をサポートする必要がある場合、 DOM 拡張を使用することができます。 この domxml 拡張は DOM 拡張と互換性はありません。 PHP4.3.0ではほぼDOM2(だったと思い

  • Do You PHP? - サンプルコード(OOP関連)

    PHP4からオブジェクト指向的な機能・動作が改善されていますが、オブジェクト指向言語であるJavaとどの程度挙動が異なるか、ちょっとずつまとめています。また、開発中のPHP5では、さらにオブジェクト指向的な言語になりそうです。

  • Do You PHP? - Cookieが使えない端末でのSessionIDについて PHP

    Cookieが使えない端末でのセッションIDについて ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 セッションIDの出力には、XSS対策のためstrip_tags関数を通したものを出力することが推奨されています。ただし、HTMLタグの内側にその値が含まれる場合、htmlspecialchars関数を使用する必要があります。 携帯端末など、Cookieが使えない場合でもSessionを使用したい場合があります。この場合、基的にGETパラメータやHIDDEN等を使ってセッションIDを「持ち回す」必要があります。単純に考えると、以下のようなコード(カウンタのサンプルです)

  • 簡単なショッピングカート - Do You PHP?

    ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。 セッションIDの出力には、XSS対策のためstrip_tags関数を通したものを出力することが推奨されています。ただし、HTMLタグの内側にその値が含まれる場合、htmlspecialchars関数を使用する必要があります。 これもよくあるネタですよね。今回はPHP4のSession管理機能を使ってカートを保持させています。カートのソース自体は、マニュアルに載っているものを参考にしました。ショッピングカートの基的な流れはこんな感じと思います。後は、購入処理や購入後のカートを消す等の処理を付ければ、簡単ですが完成ですね(たぶ

  • 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++で書かれていますが、モジュールの初期化や関数・クラスの定義、パラメータの取扱などに多くの「お約束事」がありま