PEARのQuickFormサンプル
PEARのQuickFormサンプル
PEAR HTML_QuickForm入門ガイドを表示例付きでチェックしてみました。



動作チェック用
QuickFormのテスト
一応、これでもQuickFormです。
属性そのままだと、こんな表示になる、ということ。


ルール付きのフォーム
名前欄が空欄で送信されると、エラー表示する例
QuickFormのテスト
*あなたのお名前は?
* denotes required field
addRuleメソッドにrequiredを追加するだけで、それっぽくなるわけです。


コンボボックス
ユーザ名の編集
敬称:
名:
性:
setDefaultsメソッドを呼ぶことで、初期値の設定ができます。


実行処理のプロセス化
ユーザ名の編集
敬称:
名:
性:
process_dataという実行処理メソッドに、実行処理を行わせる例です


スタイルシートを使う
Details:
Details:
Details:
class=に続けて、定義したクラス名を指定するだけです。


その動的変更の例
ここでは、動的といってもページを再読み込みしていますが、実際にはAjaxで実装のが本道かな。
Select status:
コンボボックスでアイテムを変更すると、背景色がスタイルシートで設定した色に切り替わります。


ボタンを横に並べるには、要素グループ
QuickFormのテスト
*あなたの名前は?
 
* denotes required field


文字列のフォーマット
Choose date

■HTML_QuickForm_date

HTML_QuickFormには、カスタム要素という拡張要素が用意されています。
その一つがすぐ上で紹介しているこのHTML_QuickForm_dateです。
ここでは、HTML_QuickForm_dateを使って簡易スケジュール入力フォームを作ってみます。
まずはソース。

<?php

if(!empty($token)&&0<strlen($token)){
    print 'token:' . $token . "<br>\n";
}

// メインクラスの読み込み
require_once 'HTML/QuickForm.php';

// HTML_QuickForm オブジェクトを生成
$form = new HTML_QuickForm('schForm');

$dt = date('Y-m-d-H-i');
$arr_dt = explode('-',$dt);

// フォーム要素のデフォルト値を設定
$form->setDefaults(array(
                       'sch_date' => array('Y'=>$arr_dt[0],'m'=>$arr_dt[1],'d'=>$arr_dt[2],'H'=>$arr_dt[3],'i'=>$arr_dt[4]),
                       'token'=>$token,
));

// フォームに要素をいくつか追加
$form->addElement('header', null, 'スケジュール追加');
$options = array(
'language' => 'ja',
'format' => 'Y年m月d日H時i分',
'minYear' => date('Y'),
'maxYear' => date('Y') + 1,
'addEmptyOption' => true
);
$form->addElement('hidden', 'token');
$form->addElement('date', 'sch_date', '日時:', $options);
$form->addElement('text', 'sch_title', 'タイトルを入力してください:', array('size' => 50, 'maxlength' => 255));
$form->addElement('text', 'sch_place', '場所を入力してください:', array('size' => 50, 'maxlength' => 255));
$form->addElement('submit', null, '送信');

// フィルタと検証ルールを追加
$form->addGroupRule('sch_date', '日時は必須です', 'required');
$form->addRule('sch_title', 'タイトルは必須です', 'required', null, 'client');

// フォームの妥当性検証
if ($form->validate()) {
    $arr_date = $form->exportValue('sch_date');
    print '<h2>日時:' . $arr_date['Y'] . '-' . $arr_date['m'] . '-' . $arr_date['d'] .
        ' ' . $arr_date['H'] . ':' . $arr_date['i'] . "</h2>\n";
    echo '<h2>タイトル:' . htmlspecialchars($form->exportValue('sch_title')) . '</h2>';
    echo '<h2>場所:' . htmlspecialchars($form->exportValue('sch_place')) . '</h2>';
    if(!empty($token)&&0<strlen($token)){
        echo '<h2>トークン:' . htmlspecialchars($form->exportValue('token')) . '</h2>';
    }
    print "<br>\n";
}

// フォームの出力
$form->display();
?>

date関数で現在の日時を取得し、それをもとにセレクトボックスの初期値として与えています。
このため、addGroupRuleで設定している必須設定は効果を発揮しませんが、まあ、サンプルということで流してください。
動作を見てみたい方は、このリンクこのリンクでの出力される文字の違うことに注意しながらソースを読んでみてください。
ポイントとなるのはhidden属性のtokenという変数。
何に使うかは、変数名から予測が付くと思います。別にhiddenじゃなくてもいいんですけどね。サンプルなので。


基本的には、formタグで出来ることなんですが、
PEARのQuickFormを使うと、分かりやすい記述が可能になるので、生産性の向上、バグの減少、などが見込める、ということかな。
出力されるHTMLソースは、エレガントとはいえないかな?

■PEARに関連した書籍

(データ提供:Amazon.co.jp)

PEAR入門 PHP標準ライブラリを極める!(,翔泳社)

¥ 2,940 通常24時間以内に発送
Amazonポイント:¥ 29
レビュー数:5
●作業効率の改善に!
いかにも使いそうなパッケージを詳しいながらもシンプルに纏めてあり、参考になる所が沢山ありました。
 PHPプログラマの開発の手間を大幅に改善してくれる必携の技術なので、PEARを始めようと思いながらも
WEBの情報だけではちょっと、、と思っている方にお勧めです。非常に読みやすいです。

我がままを言えば、PHP4で組んでる方もまだ多いと思われますので「PHP4ではこうしてください」という説明もあれば
なお良かったかなと思います(クラスでの"public"宣言の部分は"var"で対処するなどしました)。
 あと、パッケージインストールで「pear install」コマンドを沢山使いましたが、中には他パッケージに
依存するものもあったので「--alldeps」オプションをつけないといけない箇所もありました。

個人的にとても役立ったのはPEARの再インストールコマンドでした。
借りているレンタルサーバのPEARがとても古かったのですが、コマンドで新しくすることができたので、作業を進めることができたのです。
●初心者には不親切
はしょりすぎな感じがしました。
例えば、032PのMYSQLの設定ウィザードのセッティングですが
基本的にデフォルト値のままで設定すればOKですとありますが
それじゃ、動きませんよね?
ネットで調べて、やっとわかりましたが、そういう不親切な
ところが初心者にはつらかったです。
たぶん、プロレベルの方には、とてもいい本なのだと、思いますが。
●手元にあると割と安心
よく使うと思われるDBやHTML_QuickFormのこういうサンプルが
まとめられているというのは非常にありがたい。

既に分かっている人が周囲に居ればいいけど、少人数でやっていると
こういう書籍に頼るかググるしかない。情報が多すぎるとかえって
迷ってしまうので、入門編というくくりでこのボリュームというのが
丁度良い。

実際に使っていけば、もっと他のライブラリなどにも興味が行くと
思うのでPEARの便利さをアピールするには充分でしょう。

β版のSpread_Sheet_Excel_Writerが紹介されてるのもおもしろい。
●PEARの本がでましたね。
やっと待ち望んでいた本が出ましたね。なぜならいままで本格的な本が出ていなくて、
インターネットで情報をかき集めていましたが、この本が出ていることを知り、速攻買いました。
で、感想は確かに勉強になるけどそれをどのように応用するのかが難しいです。
でもPEARについて勉強したいという方は買って損は無いと思います。
●まさにPEARの入門書
前書の「Smarty入門」と違いPHPの解説などなく、PEARの解説に絞っているのがいいですね。
その変わりPHPでオブジェクト指向プログラミングをしたことがなかったり、オブジェクト指向がよく分かっていないと理解しずらいかもしれません。

そして、今までありそうでなかったPEARの解説書としてはすごく評価できると思います。
今までPEARを使用してプログラミングはしていましたが、まだまだ知らなかった機能がこんなにあったのかと思いました。
PHPはネットでマニュアルなどが整備されていますが、やはり紙媒体であると調べやすいです。

欲を言えばよく使用する DB,DB_DataObject,HTML_QuickForm,HTML_QuickForm_Controller あたりをもう少しボリュームを取って解説してあると良かったです。



PEAR―PHPライブラリ(,九天社)


レビュー数:1
●PEARを利用する際に必要な情報はすべて載っていました。
有名なパッケージは一通り説明があり、PHPUnitやPhingなどサードパーティのパッケージも掲載されています。
パッケージやチャネルの管理はネットで検索してもわかりづらい点が多かったので、本書のインストール関連のコマンドオプション一覧表は貴重だと思います。
個人的には、HTTP_Downloadパッケージの「複数のファイルまとめてを圧縮してダウンロード」という機能がとても役立っています。


PHPによるWebアプリケーションスーパーサンプル活用編 第2版(,ソフトバンククリエイティブ)

¥ 2,993 通常24時間以内に発送
Amazonポイント:¥ 29
レビュー数:1
●非常に親切な本です。
このシリーズの前作を読み、わかりやすさに感激して、こちらも購入しました。

活用編の名にふさわしく、実際つに使ってみたら楽しいだろうなという例がたくさんあり、懇切丁寧に解説してくれています。ほぼ初心者に毛が生えた程度だった僕でも、よく理解することができました。
文章が多めでも、わかりやすく、すっきりしているので、頭にすっと入ってくる感じですね。

とくに、後半、フレームワークについて、実用例をふまえて、しっかりと解説してくれているのがうれしいです。かなり膨大なサンプルを使って説明していますので、一回目ですらすら理解するわけにはいかなかったけれども、読み返しやすい文章、構成ですので、何回か読むうちにわかるようになりました。

専門性はないかなーと思いますけど、PHPのいろんな使い方やおおまかな周辺知識が手に入りますし、楽しくなることは間違いないです。


基礎からのPHP [基礎からシリーズ] (SE必修!プログラマの種シリーズ)(,ソフトバンククリエイティブ)

¥ 3,129 通常24時間以内に発送
Amazonポイント:¥ 31
レビュー数:5
●満足です。
基礎からのというタイトルが勘違いを生みやすく、酷評される原因になっているのでしょう。

本書はプログラムの基礎が既に解っている方向けに、「PHPと他のプログラムとでは、ここがこういう風に違っているのですよ」という見地から話が進められております。

プログラムの種類が変わっても、そこまで何もかもが変わるわけではないですから、ある程度の知識がある人には非常にわかり易く、有益な本になるはずです。
逆を言えば、全くの初学者が「基礎からの・・」というタイトルのみを自分に都合の良いように解釈して購入すれば、レベルアップするまでは扱いづらい本でもあるということです。

また、HTML&CSSを基本的にマスターされている必要もあります。
(例題で解説なしで余裕で出てきます。)

日本語が不明瞭という評価もありますが、個人的には気になりません。
私は前職のネットワークエンジニア時代にCISCOのベンダ資格も多数取得しましたが、あの参考書類と比べれば、何の問題にもありません。

いずれにしても、プログラムを取り巻く色々なものに免疫のある方に対しては最高の一冊になるはずです。
●初心者には不向きかも
「基礎からの」とありますが、これはプログラムを一通り勉強したことのある人向けです。
「PHPの基礎から」という意味かも・・・?

酷評されていますが、ほかの言語経験があったりで、プログラムの予備知識がある人には
分厚いだけあって、この本はがっちりとPHPの基礎からサポートしてくれますのでいい感じ。
途中でデータベースが出てきて触ったことの無い私は不安になりましたが、
インストール方法から簡単な使い方まで書いていてくれてたので、詰まることは無かったです。
あと、HTMLタグも解説無しで出てきます・・・。
私はいい感じで学習できていってます。星4つ!

この本でプログラムを1から学ぶというのは無理だと思います。
今まで言っていなかったようなプログラムの用語をいきなり当然のように使い始めたりしますので
経験のある人向け! 私も上級者用な本を買って「意味わかんない」となったことがありますが
数年くらいして知識が増えてから読んでみたらよく分かりました。

プログラムを基礎から学びたい人にはほかの本を
もうプログラムのこと知ってる人には検討してみたらいいかもな本です。
●購入されても(大きな意味で)損はありません。
他の方が書いているとおりまったくの初心者がこの本から始めるには少し難しいかもしれません。私も最初はこの本を購入したことを後悔しました。
しかしどの本にも共通する事ですが長所(分かりやすく書かれた部分)と短所(分かりにくい部分)があります。
また、PHPを学ぶには(どの本であっても)1冊で完了するわけではありません。必ず複数冊購入する事となるでしょう。
そのような時にこの本が役に立つ時がやってきます。他書の短所をこの本の長所が補い、この本の短所を他書の長所が補う。私の場合この本のPDOについての分かりやすい記述に助けられました。
難しいから「ダメ」では無く、難しくてもそれを乗り越える気持ちが無ければ物事の習得はありません。
この本は「”絶対”買い」ではありませんが買っても損はありません。
●眉に唾して読もう
「基礎からの」と「SE必修」の矛盾する宣伝である。
記述は、著者の理解かもしれないが不正確で読者を誤らせるものが多い。
例えば、「HTTPは人間の言語に置き換えると言語に近い」、「HTMLはコンピュータ通信の結果を人間に分かりやすく表現するために作られた言語といってよいデータ形式」など、本末転倒して誤解を生む。
基礎的な所を誤ると、後の理解の妨げになるので、眉に唾して読むべきである。
HTTPは、通信文の内容と構成の形式規定と、その送受の規定であり。
HTMLは、通信文の表現形式を簡易な規定文字使ってテキスト伝送に適合させる方法(擬似言語)である。
初心者にとって、既製ソフトの表示が新しいものに対応しているので、迷わずに済むのが唯一のメリットかも。
●不満です
他の人も書いているようだが、「基礎からの」という書名からはずれていると思う。
私のように「基礎から学びたい」というレベルの者に説明する文章とはかけ離れている、粗雑な作りではないだろうか。初心者には理解し難い高度な内容に対して、難解な文章を500ページ超集めれば、3000円を超える書籍としての価値があるのだろうか?




PHPによるWebアプリケーションスーパーサンプル ~リッチクライアント編~(,ソフトバンククリエイティブ)

¥ 2,993 近日発売 予約可
Amazonポイント:¥ 29

Warning: Invalid argument supplied for foreach() in /virtual/kommy/public_html/inc/func.php on line 75


Web+DB press (Vol.18)(,技術評論社)


レビュー数:1
●PHPの勉強に使える一冊
特集の一部を執筆した書籍
PHPに関してはかなり濃い内容の特集になったんじゃないでしょうか?
今でも超お勧め




■お知らせと連絡先

このウェブサイトで取り上げて欲しい話題や分かりにくい点などありましたら、
以下のメールアドレス宛にメッセージをいただければ、参考にさせていただきます。

メールアドレスは、work_komiあっとまーくyahoo.co.jpです。
(「あっとまーく」は、半角英数のあっとまーくに変換してね。)

また、XBOXをお使いの方は、ゲーマータグ(akbox)にてフレンドリクエストを受け付けています。