PHPのフレームワーク「CakePHP」は,Ruby on Railsの影響を強く受けており,Webアプリケーションを高速に開発するための仕掛けが随所に盛り込まれています。本連載では,このCakePHPを使ったWebアプリの開発方法について解説していきます。公式リファレンス読むのやめてこっち読もっと。
第一回の要約:
フレームワークの中では最短級の時間で習得可。標準のエラーメッセージがやけに親切。設置が簡単かつPEARなどの外部ライブラリを一切必要なし。SQL文を書く必要なし。
第二回:
URLはこんな感じになるらしい
http://example.com/コントローラー名/アクション(メソッド)名/パラメータ1/パラメータ2…
コントローラに定義するメソッド名の頭に「_(アンダースコア)」をつけることで,URIからの呼び出しができないメソッドになります。おお ちゃんとしてるね。いい!
モデルのバリデーション機能 モデルに保存できるデータの形式をあらかじめ定義しておくことで,不正なデータが保存されることを未然に防ぐ機能めっちゃいいやんそれ!
ビューキャッシュ CakePHPのビューキャッシュは非常に強力でシンプルなキャッシュ機構 うまく使えばサーバの負荷を劇的に下げることができる
ネイティブ関数の短縮表記なふほど〜いいかも 短縮の表記も覚えないとダメだけど
短縮表記を使うことでタイプ量が減って画面内に表示できる情報量が増えるので,開発効率を上げることができます。
第三回: サイト紹介ね。フォーラムとか。為になるサイトとか。
第四回: 本体のダウンロードや設定。
第五回: 実際に開発していく・・・
CakePHPの規約ではテーブル名は複数形(テーブルはモデルの中にある。)モデルを作ってビューを作る!
作成日はcreated,更新日はmodified
なるほどなるほど〜分かりやすいかも!!
第七回: CakePHPで作るToDoアプリ(3)
んん?ちょっとコードの解説が少なくてよくわからん;
echoってprintと同じようなものか phpまだ実際にやったことないから分からんことある。
なるほど楽そう。togetterとかこんな感じな気がする。
indexアクション:ステータスを指定してタスクを取得する。
やっぱこの辺から難しい。function index() {
$this->set('yet_tasks', $this->Task->findAllByStatus('yet', null, 'Task.created ASC'));
$this->set('done_tasks', $this->Task->findAllByStatus('done', null, 'Task.modified DESC'));
}
でもだいたい分かった。これは、ユーザーによって動作が変わらないプログラムだけれども、自分が作りたいのは、ユーザーによって変わるコンテンツが作りたい。つまりユーザー登録して、その情報を使って書き込んだりというもの。ここまでではまだ分からない。
第八回: タスクの追加をAjax化する
CakePHPにはWebアプリケーションのAjax化を支援するAJAXヘルパーというヘルパーがあります。これを使うことでよくあるAjax処理をそうなんだすごい。
JavaScriptをまったく記述せずに実装することができます。
<?php echo $javascript->link('prototype') ?>
これで、prototypeライブラリを読み込み。
<?php echo $ajax->form('/tasks/add', 'post', array('update' => 'yet_tasks')) ?>html->を使わず、これでajaxで表示されるのか。表示されて何かいいこと有るのかな??
form要素の開始タグの表示がAJAXヘルパーによって行われるようになりました。
おっなるほど formをajaxで書けば、ajax(非同期)で送信できるんですね(^^)。
第3引数はオプションの連想配列で,updateキーの値にデータ送信後に更新する領域のHTMLのidを指定します。送信した後に、再読み込みしたりしなくても、IDを指定していれば、その部分の表示を更新してくれるということかな。(<div>のidとか。)
エレメント化??
コードが同じなので、重複を防ぐためにエレメント化するらしい。確かに自分もプログラム作っていて重複しているところがあった場合、一部変えたいだけなのにもうひとつも変えないといけないというめんどくさいことになることがある。それは実感する。
$this->renderElement()
phpのinclude関数に近いものです。
ブラウザ上で一切画面遷移が発生していないやはりそういうことか。
ユーザー環境でのレスポンスが改善されるなどのメリットあり。
第9回: 日本のCakePHPシーンが盛り上がっています!
本の紹介や勉強会が開かれたとか。
「百式」管理人の田口元氏による,CakePHP入門初期のはまりやすいポイントの解説です。発表資料はhttp://www.ideaxidea.com/archives/2008/02/cakephp_7.htmlにて公開されています。コレチェックしとこ。面白い。twitterでフォローしてる人だった。
第10回: CakePHPで作るToDoアプリ(5)
レイアウト・・デフォルトのレイアウトを作る。
今まで使われていたのは、cakephpが用意していてくれたもの。
$this->render('ビュー名', 'レイアウト名');
ビューとレイアウト指定。
renderメソッドを実行すると,即座に表示出力が行われる。
$this->pageTitle = 'タスク一覧';
ページタイトルの設定。
ルートの変更・・・
第11回: CakePHPの「DEBUG値」を極める!
DEBUG定数に設定する値は,0,1,2,3の4種類開発しているときは、エラー表示して欲しいけど、実際運用してるときは、カッコ悪いしファイル名やらなんやら知られるとセキュリティー的に良くないからから。色々なモードが有るっていうことだね。よくわかる。
データベースのクエリのデバッグ情報も表示出来るのか。
クエリーの実行時間がわかるため,ボトルネック調査のときなどにかなり重宝する。なるほど時間食ってる処理が分かったりするのかな。
動的に変更することもできると。
第12回 コンポーネントの作り方
コンポーネントというのは,(コントローラ間で)共有できる小さな“コントローラレット”だ。コンポーネント?コントーラレット??
コンポ−ネット作成って必ずしも必要じゃない気がする。イマイチよく分からんし。
コンポーネントをうまく使えると,ある程度規模の大きいアプリケーションの見通しがかなり良くなる。第13回 ヘルパーの作り方
なるほど。なんとなく流れわかるけど、
標準のヘルパーだけ使って制作をするばややこしくないんじゃないだろうか?
第14回 CakePHP 1.2を使いたくなる5つの新機能
2009年かなり普及したとかいう話。1.1から1.2にバジョンアップ!
新機能
1.Pagination(ページネーション,自動ページ繰り)詳しくは分からんが良さそう。
2.強力なValidation(バリデーション)
3.Shell(シェル)
4.Behavior(ビヘイビア)
5.より強力なエラー表示
第15回 Paginationで面倒なページ繰り処理とおさらばしよう
ページングは、僕のサイトでもありますが、そこまで難しくはないものの自動でやってくれるならそれに越したことはないですね(^^)
表記も少なくて、簡単そう。
第16回 何でもできるようになった1.2のデータバリデーション機能(1/2):基本編
データの決まりを指定できる。英数じゃなきゃダメとか。5〜15文字じゃなきゃダメとか。メールアドレスとして正当であるかどうか。などそういうのが、文字テキストの指定で簡単にできちゃう感じ。
コレほんとに便利だと思う!!実際perlでフォームからのデータ送信&エラーを作ったことありますけど、ホント大変でめんどくさかったですから・・・。コレはほんとにイイ!!!
連載はつづいているようですが、
一応、読み終わりました。すごく分かりやすかった。
ただ前の方でも書きましたが、他ユーザーのサイトを作るやり方は載っていなかったので、その情報を探したりする必要はありそうです。
(枠で囲っているところは引用させてもらいました。thank you!)
CakePHP ポケットリファレンス (Pocket Reference) | |
![]() | おすすめ平均 ![]() ![]() ![]() ![]() ![]() ![]() Amazonで詳しく見る いろいろ情報見ましたが、 結局、本はコレ一冊あれば事足りるようです。 |
sponsered link
【プログラミング関係の最新記事】
sponsered link