Upload
yuya-terajima
View
11.725
Download
2
Embed Size (px)
DESCRIPTION
2011/02/19開催のCodeIgniterカンファレンスの講演資料です。
Citation preview
はじめてのCodeIgniterCodeIgniter Con 2011, Tokyo Japan
CodeIgniter and its logo are property of EllosLab inc
寺嶋祐也
2011/02/19 大田区産業プラザPiO
内容・基礎編
・CodeIgniterと他のFWの違い・実際の構築方法
->スニペット管理ツール
対象・初めてCodeIgniterを使う人・オリジナルのFWを使っている人・cakePHPやsymfonyを使っている人
注意事項
・記載するCodeIgniterとは、CodeIgniter Reactorです
・Ver.は2.0
・ソースコードはgithubで公開中-> https://github.com/e2esoundcom/ci-snippets
Q.CodeIgniterとは?
・MVCフレームワーク
・PHP 5.1.6
・MySQL , Postgres, Oracle, SQLite, ODBC
・EllisLab.inc + コミュニティにより開発Core -> EllisLab.incReactor-> EllisLab.inc + コミュニティ
+Reactor Engineers
2.0になって変わったこと
・PHP4対応終了、PHP5.1.6以上へ・Scaffolding, Validation 削除・driver・CSRF保護機能の追加・キャッシュ機能強化(APC, memcache)・Bug Fix・各ライブラリにメソッド追加…etc
+ C とMの書き方が変わった
基本:ディレクトリ
application/~
・controllers・models・views・helpers (自作の関数置くところ)・libraries (自作のクラス置くところ)
system/~は触れない
基本:規約
ControllerとModel共通のルール
・ファイル名とクラス名は同一・クラス名の最初の1文字目は必ず大文字
sample.php
class Sample extends CI_Controller {}
まとめ:覚えること
ライブラリ
$this->load->library("name");ヘルパ
$this->load->helper("name");View
$this->load->view("file", $data);※値は配列で渡す
Model
$this->load->model("file");Modelのメソッドを使う
$this->model_name->function()
+ C とMの
フォーマット
※今日のサンプルコードはgithubにあります
https://github.com/e2esoundcom/ci-snippets
設定:config.php
・設置URL$config["base_url"] = "http://example.jp/"
・log$config[" log_threshold "] = 4
・暗号化キー$config['encryption_key'] = "(32文字乱数)";
・URLプロトコル$config['uri_protocol'] = "AUTO";
+ CSRF機能$config['csrf_protection'] = TRUE;
設定:index.phpデフォルトでは…・$system_path = "system";・$application_folder = "application";
root/
applicasion/system/index.php
ディレクトリをドキュメントルート以外に設置する場合に変更
設定:.htaccess
root/
applicasion/system/index.php.htaccess
ewriteEngine onRewriteCond $1 !^(index¥.php|images|robots¥.txt)RewriteRule ^(.*)$ /index.php/$1 [L]
+ config.phpを書換え$config['index_page'] = '';
edit.php:~/edit/confirm
form_validation・値の検証クラスライブラリ・ルールの記述はコンストラクタ or 設定ファイル
$this->form_validation->run();
成功ならTRUE,失敗ならFALSE
form_validationとset_value()の注意点
・set_value()は、form_validationをrun()させないと値が取れない
・set_value()で出力された値は、htmlspecialchars()を通っている
SQL発行を補助するメソッド
・insert_string()
・update_string()
テーブル名と配列を与えるとSQLを生成array("title" => $title,
"code" => $code,"code_type" => $code_type);
結果取得
・オブジェクトで返す -> result(), row()・配列で返す -> result_array() , row_array()・何行返ったか -> num_rows()
こんな機能も!・クエリのキャッシュ・結果セットからCSV生成・結果セットからXML生成