20
CodeI gni ter について php フレームワーク勉強会 安藤さん / いしかわさん /ojimac

Code Igniterについて

  • Upload
    ojimac

  • View
    2.670

  • Download
    0

Embed Size (px)

Citation preview

CodeI gni terについて

phpフレームワーク勉強会安藤さん /いしかわさん /oj i mac

Agenda■ Form

■ URL

■ Database

本題に入る前に前提知識 CodeI gni ter| --- system | --- appl i cati on | --- control l ers | --- vi ews | --- model s | --- などなど (自作ヘルパーや自作ライブラリ )

ほとんどこの 3つをいじっていきます

Form(1/5)■ フォームヘルパー

ヘルパーを使いたいControl l er内で

$thi s->l oad->hel per(‘form’);

と記述しておきます。

Form(2/5)

<?=open_form(‘コントローラ名 /メソッド名’ )?>

<i nput type=“text” name=“test” val ue=“<?=set_val ue(‘test’);?>” />

<i nput type=“submi t” val ue=“Go” />

<?=cl ose_form?>

クライアント側の記述 (View)

Form(3/5)

Vi ewの

<?=open_form(‘コントローラ名 /メソッド名’ )?>

で指定されたメソッド内で、

$thi s->i nput->post(‘test’);

と書く事で取得できます。

サーバ側の記述 (Controller)

Form(4/5)■ フォームバリデーション

1. ライブラリロード$thi s->l oad->l i brary(‘form_val i dati on’);

2. ルールの設定$thi s->form_val i dati on->set_rul es(‘test’, ‘ ’てすと ,

‘requi red’);

3. バリデーションを走らせる !$thi s->form_val i dati on->run();

必須チェック

Form(5/5)エラーになった場合。。。→先ほどのVi ewに

<?=val i dat i on_errors()?><?=open_form(‘コントローラ名 /メソッド名’ )?><i nput type=“text” name=“test” val ue=“<?

=set_val ue(‘test’);?>” /><i nput type=“submi t” val ue=“Go” /><?=cl ose_form?>

と書いておく事でメッセージを表示させることができます !

URL(1/4)http: //domai n/i ndex.php/コントローラ /メソッド

mod_rewri teで「 i ndex.php」をなくす事も可能。→今のところ、最低限の設定でCodeI gni terの使い方、 楽しみ方を体験することを優先させているため、  i ndex.phpありの設定で運用中です。

URL(2/4)■ 例Formで

<?=form_open(‘shop/add/’)?>

としたときのURLは、

http: //domai n/i ndex.php/shop/add/

のようになります

メソッド

コントローラ

URL(3/4)■ i tem_i dも一緒にサーバへ送りたい場合

<?=form_open(‘shop/add/’ . $row->i tem_i d)?>

としておくと、

http: //domai n/i ndex.php/shop/add/i tem_i d

というURLになります。

URL(4/4)■ URI クラス※ →システム側で自動初期化 いきなり使える

http: //domai n/i ndex.php/shop/add/i tem_i d

の i tem_i dを取得したい場合、

$i tem_i d = $thi s->uri ->segment(3, 0);

と書きます。

1 2 3

取得できなかった場合の値

Database(1/2)■ 選択肢は複数あります

• PHP の素の接続• CodeI gni terのActi veRecordを

使わない書き方• Acti veRecord • O/Rマッパー (Propel など )

今回は、3.Acti veRecordを採用してみました

実行

速度

Database(2/2)■ Ac t i veRecordクラス//SELECT * FROM t_shop_i tem ORDER BY i tem_i dに相当$thi s->db->order_by(‘i tem_i d’);$thi s->db->get(‘t_shop_i tem’);

結果は、$query = $thi s->db->get(‘t_shop_i tem’);

$query->resul t();

とすると、結果がオブジェクトの配列で返ってきます

現状■ 基本的な部分はできてます!

  1.インストール完了 2.デフォルトページの表示 3.ページのカスタマイズ 4.複数ページの表示 5.データベースへのアクセス 6.データベースの操作( SELECT、 INSERT、 UPDATE) 7.フォームの出力

管理画面、注文確認画面などに着手しています。イベントがいつ発生するか楽しみです^^

共有ドキュメント• 開発中に培ったノウハウは「CodeI gni terの使い方」というタイトルで、

Googl eグループ内にまとめてあります。URLは以下http: //groups.googl e.co. j p/group/ �php-begi nner/web/codei gni ter-2

CodeI gni terを使ってみて

■ 動かすまでの設定が他フレームワークに比べて圧倒的に簡単 !

■ やりたいことに集中できるという印象。→面倒なところ (バリデーション、フォームの扱い等 )はフレームワーク側にクラスやヘルパーが用意されている。

まとめ• 今回はForm、URL、Databaseについて 簡単に紹介しました。

– Form• フォームヘルパ• フォームバリデーションクラス

– URL• CodeI gni terのURL• URI クラス

– Database• Acti veRecord

ついでにちょっと宣伝(笑)

ATND検索、リニューアルしました !

http: //oj i mac.sakura.ne. j p/atndapi /

ATND検索

– ATND API を使ったイベント検索システム–本に載ってたFWで全面書き換え !• PHPによるWeb アプリケーションスーパーサンプル 活用編

– Googl eCal endarへイベント登録できる !– キャッシュに当たりやすくなった

  (リクエストURI→検索ワードでキャッシュ )– その他細かいbugf i x等

是非,使ってみて下さい ! ! !