| PEAR入門 PHP標準ライブラリを極める!
● データベースに依存しないコードを記述する - PEAR::DB -
| ◆-PEAR::DB - |
| プログラムファイル |
page |
>>データベースの接続を確立する
MySQLに接続/切断するためのコードです
サンプル
|
079 |
>>データベース接続情報の解析エラーを防ぐ
P079のconnect.phpを連想配列形式で書き換えたものです。表示結果は同じです。
サンプル
|
082 |
>>データベースの実行時のオプションを設定する
ここではポータビリティーモードの他、各オプション設定についての説明があります。サンプルの実行結果はP079と同じです。
サンプル
|
085 |
>>指定された特定の機能の確認
指定された特定の機能が、現在のデータベースで使用可能かどうかをTRUE/FALSEで返します。ここではトランザクション機能について確認をしています。
サンプル
|
085 |
>>データベースからデータを検索/取得する
composerテーブルからnameフィールドについて昇順で全レコードを取得しHTMLテーブルに整形します。
サンプル
|
088 |
>>getAllメソッド
指定されたSQL命令の実行結果をまとめて2次元配列として返します。
サンプル
|
093 |
>>DB_FETCHMODE_FLIPPED
DB_FETCHMODE_FLIPPEDを指定することで列単位に配列がまとめられています。
サンプル
|
094 |
>>getAssocメソッド
getAssocメソッドでは、先頭列を連想配列のキーに、後続の列情報を値配列として返します。
サンプル
|
095 |
>>getAssocメソッド2
結果セットが2列しかない場合、デフォルトでgetAssocメソッドは値情報をスカラー値(単一値)として返します。
サンプル
|
096 |
>>getAssocメソッド3
第2引数$foce_arrayをTUREに設定することで、値を強制的に配列に加工することができます。
サンプル
|
097 |
>>getAssocメソッド4
getAssocメソッドではキーが重複した場合、先行する値を後続の値で上書きします。しかし、第4引数$groupをTRUEに設定する事で、入れ子の配列でグルーピングすることができます。
サンプル
|
097 |
>>getColメソッド
特定の列を配列として取得します
サンプル
|
098 |
>>getRowメソッド
取得した結果セットの先頭行を配列(またはオブジェクト)として返します。
サンプル
|
100 |
>>getOneメソッド
取得した結果セットの先頭行/先頭列の値をスカラー値として取得します。
サンプル
|
101 |
>>取得するレコードの件数を制限する
大量の結果セットの中から一部のレコードを取得したい場合には、limitQueryメソッドを利用すると便利です。
サンプル
|
102 |
>>取得した行・列の数を取得する
結果セットに含まれる行・列の数を取得することができます。
サンプル
|
103 |
>>データの登録/更新を行う
入力した値をcomposerテーブルに登録
サンプル
|
104 |
>>プリペアド・ステートメント
前項の「データの登録/更新を行う」のデータ登録のところをプリペアドステートメントを使って書き換えています。結果は同じです。
サンプル
|
111 |
>>トランザクション処理
トランザクション処理について勉強します。ここではエラーを発生させ、データ処理のロールバックをさせるプログラムです。ブラウザ上ではエラーが表示されます。
サンプル
|
113 |
>>複数の命令をまとめて実行する
複数の命令をまとめて実行するexecuteMultipleメソッドの例です。ブラウザ上では特になにも表示されません。
サンプル
|
114 |
>>autoPrepareでUPDATE命令を生成する方法
autoPrepareでUPDATE命令を生成する方法。ブラウザには特に何も表示されません
サンプル
|
117 |
>>データベースのメタデータを取得する(1)
サンプル
|
118 |
>>データベースのメタデータを取得する(2)
getListOfメソッドでは、データベース上に存在するデータベース・オブジェクトを配列として返します
サンプル
|
121 |
>>シーケンスで自動連番を管理する
シーケンスを利用した連番管理の例です
サンプル
|
122 |
|
● SQLレスでデータベース連携を可能にする - PEAR::DB_DataObject -
| ◆-PEAR::DB_DataObject- |
| プログラムファイル |
page |
>>factoryメソッド getメソッド
factoryメソッドとgetメソッドについて
サンプル
|
130 |
>>staticGetメソッドでよりシンプルなデータ取得
staticGetメソッドについて。ブラウザ表示結果は前項と同じです。
サンプル
|
132 |
>>staticGetメソッドでよりシンプルなデータ取得
前項のサンプルを少し違う方法で書かれています。ブラウザ表示結果は前項と同じです。
サンプル
|
132 |
>>検索結果を配列として取得する
サンプル
|
133 |
>>複雑な検索条件を指定する
find/fetchメソッドについて。
サンプル
|
134 |
>>whereAddメソッドによる条件句指定
サンプル
|
136 |
>>データベースの登録/更新/削除を行う
DB_DataObjectを利用して、データベースへの登録/更新/削除処理を行ってみる事にしましょう。ここではcomposerテーブルに対して、新規のレコードを追加します。ブラウザには何も表示されません。
サンプル
|
137 |
>>ポストデータをデータアクセスクラスにセットする方法
HTMLフォームからポストされたデータを自動的にデータアクセスクラスの書くプロパティに割り当てます
サンプル
|
138 |
>>複数テーブルをリンクする
getLinkメソッドを使ってテーブルをリンクします。
サンプル
|
139 |
>>リンク定義ファイルで関連づけを効率化
リンク定義ファイルを利用することで、キー情報の関連付けを外部ファイルとして管理することが出来ます。ブラウザ表示結果は前項のサンプルと同じです。
サンプル
|
141 |
>>joinAddメソッドによる関連づけ
joinAddメソッドを利用してDB_DataObject上でJOIN句を含むSQL命令を発行します。
サンプル
|
142 |
>>スキーマ情報を取得する
tableメソッドを介することで対象テーブルのスキーマ(メタ情報)を取得することが出来ます。
サンプル
|
144 |
>>PEAR::DBライブラリと連携する
PEAR::DBライブラリではPEAR::DBのオブジェクトを取得するためのメソッドが提供されています。
サンプル
|
145 |
|
● フォーム認証を実現する - PEAR::Auth -
| ◆-PEAR::Auth- |
| プログラムファイル |
page |
>>パスワードのMD5ハッシュ値を取得する
サンプル
|
151 |
>>PEAR::Authクラスを利用してみよう
あらかじめユーザとしてyyamada、nkakeyaが用意されており、いずれもパスワードは「12345」です。再認証を試したいときは、ブラウザを全て閉じてからやり直してください。
サンプル
|
152 |
>>ユーザーの付随情報を取得する
現在のログイン・ユーザの名前を取得します。前項のサンプルと続けて実行した場合、正しくユーザ名を取得できない場合があります。その場合、ブラウザを再起動して試してください。
サンプル
|
157 |
>>ユーザ情報を登録/削除する
ここでは新規のユーザとして「nhio」をデータベースに登録します。パスワードは同じく「12345」で登録します。
サンプル
|
159 |
>>認証時の情報を取得/設定する
ここでは認証済みユーザの現在のログイン・ユーザー名と認証期限を出力します。
サンプル
|
160 |
|
● HTTPベースの認証を実現する - PEAR::Auth_HTTP -
| ◆-PEAR::Auth_HTTP- |
| プログラムファイル |
page |
>>PEAR::Auth_HTTPを利用した例
初回にアクセスした際に認証ダイアログが表示されます。前項のサンプルで一度ログインしているときは、ブラウザを閉じて一度認証を破棄してから再度試みてください。
サンプル
|
167 |
|
● ユーザの任意情報を管理する - PEAR::Auth_PrefManager -
| ◆-PEAR::Auth_PrefManager- |
| プログラムファイル |
page |
>>Auth_PrefManagerを利用したサンプル
ここでは、ユーザー名「yyamada」、プロパティ名「uname」で、ユーザ名を登録するスクリプトです。正しくデータベースに登録された事を確認する為に、登録内容を画面上に出力します。
サンプル
|
171 |
>>デフォルト値を管理する
デフォルト値(指定されたユーザIDで対応するプロパティ値が取得できない場合にデフォルトで適用される値)として「ゲスト」を登録してその内容を確認するためのスクリプトです。
サンプル
|
174 |
getPrefメソッドで該当のユーザに対するプロパティ値が見つからなかった場合に適用すべき値として、デフォルト値を利用します。ブラウザ出力結果は前項のサンプルと同じです
サンプル
|
175 |
|
● 入力検証からデータ処理までHTMLフォームを自由自在 - PEAR::HTML_QuickForm -
| ◆-PEAR::HTML_QuickForm- |
| プログラムファイル |
page |
>>HTML_QuickFormによる基本的なフォームの生成
HTML_QuickFormwライブラリを利用したフォームのサンプルです。
サンプル
|
178 |
>>レンダラを用いた表示テンプレートのカスタマイズ
ライブラリ内に用意されたレンダラ(描画エンジン)を操作することで、スタイルを自由に変更できます。
サンプル
|
189 |
>>フォーム内の入力要素をデータ検証する
HTML_QuickFormライブラリは、入力データの妥当性を検証したり、空白除去などのフィルタ処理を行う必要がある複雑なフォームを手早く構築するためのライブラリです。
サンプル
|
192 |
>>処理前に入力データをフィルタ加工する
ここでは、フォームで入力された値の前後から空白が取り除かれ、かつ、英文字は大文字に変換されます。
サンプル
|
196 |
>>カスタム要素による高度なユーザ・インターフェイスの実現
ここではAdvCheckBox,HierSelectについて紹介しています。
サンプル
|
198 |
>>HTML_QuickFormライブラリによるファイルアップロード
HTML_QuickFormライブラリを利用して、ファイルのアップロードを行ってみることにしましょう。
サンプル
|
200 |
>>カスタムの検証ルールを適用する
HTML_QuickFormライブラリでは自前でオリジナルの検証ルールを追加するためのインターフェイスを提供しています。ここでは郵便番号のフォーマットを検証しています
サンプル
|
202 |
正規表現パターンを用いた単純な検証です。サーバサイド、クライアントサイド双方で検証機能を有効に出来ます。
サンプル
|
205 |
>>HTML_QuickForm_Rule派生クラス
サーバークライアント検証を有効にし、かつ、正規表現パターン以外の複雑な検証ルールを定義したい場合にHTML_QuickForm_Rule派生クラスを使います。
サンプル
|
207 |
>>フォーム固有の検証ルールを追加する
最小値と最大値項目を比較し、最小値の方が大きい場合にエラーダイアログを出力します。
サンプル
|
208 |
|
● Webアプリにウィザード機能を実装する - HTML_QuickForm_Controller -
| ◆-PEAR::HTML_QuickForm_Controller- |
| プログラムファイル |
page |
>>HTML_QuickForm_Controllerによるウィザード画面の例
「基本認証」「拡張情報」という2つの入力ページを持つウィザード画面です。
サンプル
|
214 |
|
● さまざまな際とメニューを実装する - PEAR::HTML_Menu -
| ◆-PEAR::HTML_Menu- |
| プログラムファイル |
page |
>>HTML_Menuライブラリの基本的な使い方
HTML_Menuを利用することで、一般的なサイトで利用されるナビゲーションを簡単に作成することが出来ます。
サンプル
|
222 |
>>レンダラクラスを利用した例
ここではレンダラクラスのひとつであるHTML_Menu_DirectRendererクラスを利用して、HTML_Menuによるメニューの出力をカスタマイズします。前項のサンプルとは違い、メニュー周辺を囲んでいた枠線がありません。
サンプル
|
229 |
>>treemenuテーブルからメニューを生成しよう
ここではtreemenuテーブルを読み込み、ツリー式のメニューを出力します。実行結果はp222と同じです
サンプル
|
234 |
|
● ツリーメニューを生成する - PEAR::HTML_TreeMenu -
| ◆-PEAR::HTML_TreeMenu- |
| プログラムファイル |
page |
>>HTML_TreeMenuライブラリの基本的な使い方
p222のサンプルをHTML_TreeMenuライブラリで書き直したものです。
サンプル
|
236 |
>>データベースから動的にツリーメニューを生成する
HTML_Menuライブラリ同様、HTML_TreeMenuもデータベース上でメニュー情報を管理することが可能です。
サンプル
|
241 |
|
● 大量データをページング機能で分割出力する - PEAR::Pager -
| ◆-PEAR::Pager- |
| プログラムファイル |
page |
>>Pagerライブラリの基本的な使い方
ここでは123件のアイテムを15件単位にページ分割し、出力します。
サンプル
|
243 |
>>ページングの諸情報を取得する
サンプル
|
247 |
>>表示件数を動的に変更する
サンプル
|
250 |
|
● 外部RSSデータをインポートする - PEAR::XML_RSS -
| ◆-PEAR::XML_RSS- |
| プログラムファイル |
page |
>>XML_RSSライブラリの基本的な使い方
著者が運営するサイトWebDeliで発行しているRSSフィードを取得し、新着情報を一覧表示します。
サンプル
|
253 |
>>myRss.phpを書き換えてみる
XML_RSSクラスのgetXxxxメソッドを使って、前項のmyRss.phpを書き換えます。
サンプル
|
255 |
|
● データ・ダウンロード機能を実装する - PEAR::HTTP_Download -
| ◆-PEAR::HTTP_Download- |
| プログラムファイル |
page |
>>HTTP_Downloadライブラリの基本的な使い方
HTTP_Downloadを使って、サーバ上に配置された任意のファイルをクライアントにダウンロードさせるサンプルです
サンプル
|
258 |
>>staticSendメソッドによるアプローチ
サンプル
|
261 |
>>ダウンロード・データを動的に生成する
動的に生成したデータを送出します。ダウンロードしたテキストデータはEUC-JPコードを扱えるエディタで開いて見てください。Windowsのメモ帳ではEUC-JPを扱えないので文字化けします。
サンプル
|
262 |
>>特定ファイルをアーカイブする
指定されたファイル(ディレクトリ)を圧縮形式でダウンロードすることも出来ます。
サンプル
|
263 |
|
● メール送信を行う - PEAR::Mail、Mail_MIME -
| ◆-PEAR::Mail、Mail_MIME- |
| プログラムファイル |
page |
>>Mailライブラリの基本的な使い方
特にブラウザには何も表示されません。実行すると弊社へメールが届きます。
サンプル
|
265 |
>>HTMLメールを送信する
特にブラウザには何も表示されません。実行すると弊社へメールが届きます。
サンプル
|
267 |
|
● 非同期のメール転送を実現する - PEAR::Mail_Queue -
| ◆-PEAR::Mail_Queue- |
| プログラムファイル |
page |
>>メールキューにメールを追加する
まずはメールデータをメールキューに追加する必要があります。まずはここでメールキューに追加して、次項のサンプルでメール送信します。ブラウザには何も表示されません。メールは弊社宛てに届くようにしてあります
サンプル
|
272 |
>>前項でキューに追加したメールを送信します
前項でキューに追加したメールを一斉に送信します。メールは弊社宛てに届くようにしてあります
サンプル
|
274 |
|
● 設定ファイルの読み書きをシンプルにする - PEAR::Config -
| ◆-PEAR::Config- |
| プログラムファイル |
page |
>>Configライブラリの基本的な使い方
既存のXML文書を読み込んでみます。
サンプル
|
282 |
>>設定ファイルの作成/編集を行う
既存の設定ファイルを更新したり、新たな設定ファイルを作成したりすることも容易に実現できます。ブラウザには何も表示されません。このプログラムで生成されたファイルは次項にて確認できます。
サンプル
|
284 |
前項で生成されたファイルです。
サンプル
|
284 |
>>設定ファイル内の情報を取得/更新する
既存の設定ファイル(XML形式)を読み込み、新規のコンテナ要素を追加した上で、別形式(コメント付iniファイル)で出力する例です。ここではブラウザには何も出力されません。生成されたファイルの中身は次項にて確認できます。
サンプル
|
290 |
前項で生成されたファイルです。
サンプル
|
290 |
|
● ページ・キャッシュを実現する - PEAR::Cache_Lite -
| ◆-PEAR::Cache_Lite- |
| プログラムファイル |
page |
>>Cache_Liteライブラリの基本的な使い方
2回目以降の表示では1回目と同じ時刻が表示され、初回リクエスト時にキャッシングされていることが分かります。
サンプル
|
293 |
>>パラメーターごとのキャッシュを切り替える
URLの後に「?id=1」と言う具合にパラメーターを付けてください。パラメータの値ごとにキャッシュされていることが分かります。
サンプル
|
297 |
>>Cache_Liteライブラリによるページ・キャッシュ
p293のcacheLite.phpをCache_Lite_Outputクラスで書き換えてみることにしましょう。
サンプル
|
298 |
>>関数の実行結果をキャッシュする
指定された関数からの出力結果をキャッシュ処理します
サンプル
|
300 |
|
● 開発から運用までアプリケーション上のロギングを管理する - PEAR::Log -
| ◆-PEAR::Log- |
| プログラムファイル |
page |
>>ログレベルを設定する
ログレベルを設定する勉強です。サンプルを実行するとmy.logというログが出力されます。my.logは次項で確認できます。ブラウザには何も表示されません。
サンプル
|
303 |
前項のログの結果です。EUC-JPですので、ダウンロード(リンク上を右クリックして対象を保存)して、EUC-JPを扱えるエディタで開いてください。Windowsでデフォルトで使用されるメモ帳では文字化けします。
サンプル
|
303 |
>>ログハンドラを自在に切り替える
ここではデータベースにログを記録します。ブラウザには何も表示されません。
サンプル
|
307 |
|
● 単体テストを効率化するテスティング・フレームワーク - PEAR::PHPUnit -
| ◆-PEAR::PHPUnit- |
| プログラムファイル |
page |
加算・減算を行うためのadd、subtractメソッドが用意されているCalcurate.class.phpをテストし、その結果が表示されます。testAddメソッドが「成功」、testSubtractメソッドが「失敗」となります。
サンプル
|
312 |
|
● Excel形式のファイルを動的に生成する - PEAR::Spreadsheet_Excel_Writer -
| ◆-PEAR::Spreadsheet_Excel_Writer- |
| プログラムファイル |
page |
>>シンプルなワークブックを発行する
サンプル
|
314 |
>>セル・フォーマットをカスタマイズする
サンプル
|
318 |
|
● アプリケーション間のデータ交換をシンプルに行う - PEAR::XML_Serializer -
| ◆-PEAR::XML_Serializer- |
| プログラムファイル |
page |
>>XML_Serializeクラスでシリアライズ処理
XML_Serializerはオブジェクトや配列のような構造化データを、XML形式のデーターに変換するための機能を提供します。次項で変換後のXMLファイルを見ることが出来ます
サンプル
|
323 |
前項で変換されたXMLファイルです
サンプル
|
324 |
>>XML_Unserializerクラスでデシリアライズ処理
XML_Serializerクラスでシリアライズされたデータは、XML_Unserializerクラスを利用することでデシリアライズ(復元)し、元のオブジェクトとして再利用することが可能です。
サンプル
|
326 |
|
● ランダムなパスワードを自動生成する - PEAR::Text_Password -
| ◆-PEAR::Text_Password- |
| プログラムファイル |
page |
>>ランダムなパスワード文字列を作成する
サンプル
|
329 |
>>ログイン名からパスワードを生成する
サンプル
|
331 |
|
● PEARライブラリで「在席ボード」を構築する
| ◆在席ボードアプリケーション |
| プログラムファイル |
page |
ユーザID「U0001〜U0016」 パスワード「12345」で設定してあります。お試しください。
サンプル
|
334 |
|
|