登録者:Kenji

CodeIgniter 〜 2008年大躍進のPHPフレームワーク

2008-10-05 17:36:57
アクセス数:2435
タグ: OSC PHP CodeIgniter
3

■説明

OSC2008 Nagoya で行われたCodeIgniterユーザ会のセミナー資料。

リンク

このスライドの現在表示中のページへのリンク
ブログパーツ
google ガジェット

関連するスライド

CodeIgniterでhello world! 二番煎じ☆ 2080-0825

投稿者:NEKOGET
投稿日時:2010-08-25 21:51:13

遠隔操作でハムスターに エサをあげよう!

投稿者:akkie
投稿日時:2009-09-28 11:02:49

PHPの最新動向 5.3の新機能を中心に

投稿者:koyhoge
投稿日時:2009-02-08 23:26:53

PHPプログラミングのIPv6対応の実際

投稿者:koyhoge
投稿日時:2008-11-27 22:55:39

Ethnaで問題が起こったときにする5段階の解決法

投稿者:sotarok
投稿日時:2008-08-16 02:07:55

第34回PHP勉強会発表資料 ちょっと極めるPHP5×XML

投稿者:sotarok
投稿日時:2008-07-24 12:18:09

CakePHP Email Component 調査報告書

投稿者:suzuki
投稿日時:2008-02-21 01:29:57

お気に入り登録したユーザ

GoodJobしたユーザ

タグクラウド

OSCCodeIgniterPHP

■スライド内のテキスト

スライド1: CodeIgniter and its logo are property of EllisLab IncCodeIgniter2008年大躍進のPHPフレームワーク日本CodeIgniterユーザ会Kenji Suzuki2008/08/09CodeIgniter Users Group in Japan

スライド2: CodeIgniterとは?・ アメリカEllisLab社が開発配布しているオープンソースのPHPフレームワーク・ 2006年2月リリース・ http://codeigniter.com/CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド3: CodeIgniterとは?・ 世界第4位のPHPフレームワークCodeIgniter and its logo are property of EllisLab IncGoogle Trendsによる検索数CodeIgniter Users Group in Japan

スライド4: CodeIgniterの利用例CodeIgniter and its logo are property of EllisLab Inchttp://www.opensourcefood.com/CodeIgniter Users Group in Japan

スライド5: CodeIgniterの利用例CodeIgniter and its logo are property of EllisLab Inchttp://www.2kurabe.com/CodeIgniter Users Group in Japan

スライド6: フレームワークとは?・ Webアプリケーションフレームワークとは?➔Webアプリケーションの「枠組み」➔機能としては• 過去のプログラミングの経験則の規約化• 頻繁に使う機能を抽象化(モジュール化、ライブラリ化)➔Webアプリケーション全体を見通しよく開発できるようにするものCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド7: CodeIgniterに向いている人・ パフォーマンス命・ 自由に書かせろ!➔ 規約や制限が比較的少ない、拡張が容易・ ドキュメントのないソフトは使えません・ レンサバ大好き➔ PHP4/5対応、PEAR不要、コマンドライン不要・ 他のフレームワークに挫折しました...orz・ フレームワーク使ったことありませんCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド8: ・ はやいCodeIgniterを使うメリット➔軽量で動作が高速・ やすい➔習得し易い(低い学習コスト)・ うまい➔過去の習慣(コンベンション)、優れた実践(グッドプラクティス)、およびノウハウなどが、ぐっと濃縮されてつまったものCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド9: MVCモデルとは?・ Controller(コントローラ)は、入力データに従って適切なデータを呼び出し、ModelやViewの連携など、アプリケーション全体の制御を行う・ Model(モデル)は、データベースへのアクセスやデータの修正/加工などの処理を行う・ View(ビュー)は、処理結果の表示など、画面表示を担当するCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド10: ・リクエスト・データ入力MVCモデル結果CodeIgniter and its logo are property of EllisLab IncController流れの制御など結果呼び出しView見栄え、デザインなど結果呼び出しModelデータの修正/加工などCodeIgniter Users Group in Japan

スライド11: CodeIgniterの構造CodeIgniter and its logo are property of EllisLab Inc・ index.php➔フロントコントローラ・ application➔アプリケーション固有・ system➔システム全体CodeIgniter Users Group in Japan

スライド12: index.phpCodeIgniterの全体像ルーティングキャッシュセキュリティCodeIgniter and its logo are property of EllisLab IncコントローラモデルビューデータベースライブラリヘルパープラグインCodeIgniter Users Group in Japan

スライド13: URLの構造・ URIセグメントベース・アプローチhttp://example.jp/controller_class/method/arghttp://example.jp/shop/search/123class Shop extends Controller {}...function search($id){$this­>load­>database();...}CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド14: Controller・ Controllerクラスを継承・ index()メソッドはデフォルトメソッドclass Time_message extends Controller {function index(){// タイトル$data['title'] = '時刻メッセージ';// 現在の時刻$data['now_time'] = date("H時i分s秒");}➔http://example.jp/time_message/system/application/controllers/time_message.php}CodeIgniter and its logo are property of EllisLab Inc// テンプレートに変数を代入$this­>load­>view('time_message_view', $data);CodeIgniter Users Group in Japan

スライド15: View・ 標準のビューファイルは、単なるPHPファイルsystem/application/views/time_message_view.php<html><head><title><?php echo $title; ?></title></head><body><?php echo $now_time; ?></body></html>CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド16: View・ (オプション)Smartyライクなテンプレートパーサクラスsystem/application/views/time_message_view.php<html><head><title>{title}</title></head><body>{now_time}</body></html>※Controllerの記述が標準のビューファイル  の場合とは、多少変わりますCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド17: Model・ オプション(使わないことも可能)・ データベース・アクセスの方法➔標準的な問い合わせ➔Active RecordCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド18: 標準的な問い合わせ// SQLクエリの実行$query = $this­>db­>query('SELECT id, name, email FROM bbs');// 表示処理foreach ($query­>result() as $row){echo $row­>id    . ' ';echo $row­>name  . ' ';echo $row­>email . '<br />';}echo 'レコード数: ' . $query­>num_rows();CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド19: Active Record$this­>db­>select('id, name, email');$query = $this­>db­>get('bbs');foreach ($query­>result() as $row){echo $row­>id    . ' ';echo $row­>name  . ' ';echo $row­>email . '<br />';}echo 'レコード数: ' . $query­>num_rows();CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド20: Model・ Modelクラスを継承system/application/models/shop_model.phpclass Shop_model extends Model {}function Shop_model(){parent::Model();$this­>load­>database();}function get_category_list(){$this­>db­>order_by('id');$query = $this­>db­>get('category');return $query­>result();}CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド21: ・ ロードするModelの使い方➔ $this­>load­>model('Shop_model');・ メソッドを呼び出す➔ $this­>Shop_model­>get_category_list();CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド22: ヘルパー・ 主にビューで使う役に立つ関数群・ オブジェクト指向でなく手続き型・ どんなものがあるか?➔日付ヘルパー(日付の生成や変換)➔Formヘルパー(Form部品の生成)➔セキュリティヘルパー(セキュリティ処理)➔URLヘルパー(URLに関するもの)➔その他もろもろCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド23: ・ ロードするヘルパーの使い方➔$this­>load­>helper('url');・ 使用する➔anchor('search', '検索');<a href=”.../search”>検索</a>CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド24: ライブラリ(クラス)・ オブジェクト指向・ どんなものがあるか?➔コアシステムクラス• システムで自動的にロード• 例、ベンチマーク、入力、出力➔データベース関連のクラス➔その他のクラス• 例、セッション、Email、ページネーション(ページャ)CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド25: ライブラリ(クラス)の使い方・ ロードする➔$this­>load­>library('table');・ メソッドを呼び出す$tmpl = array ('table_open' => '<table border="1" cellpadding="4" cellspacing="0">');$this­>table­>set_template($tmpl);$data = array(array('名前', '色', 'Size'),array('フレッド', 'ブルー', 'Small'),array('マリー', '赤', 'Large'),array('ジョン', '緑', 'Medium'));echo $this­>table­>generate($data);CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド26: CodeIgniterのセキュリティ・ フールプルーフではない!➔フールプルーフとは?「よくわかっていない人が扱っても安全」-- http://e-words.jp/➔○○を使っていれば安全・ ただし、CodeIgniterには、➔自動的に働く内部セキュリティ機能➔手動で利用するセキュリティ支援機能• フレームワークを使わない場合より、ずっと安全CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド27: CodeIgniterのセキュリティ・ 内部セキュリティ機能➔URIセキュリティ• URIで使用できる文字を厳しく制限➔GET、POST、クッキーデータ• GETデータはクリア➔register_globals• 強制的にoffにCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド28: CodeIgniterのセキュリティ・ セキュリティ支援機能➔ XSSフィルタリング• セキュリティヘルパーと入力クラス➔ バリデーション(検証)クラス• POSTされたデータの検証・整形➔ クエリのエスケープ処理• $this->db->escape()メソッド• バインディング(例、WHERE id=?)• Active Recordでは自動的にエスケープ処理CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド29: CodeIgniterの高い拡張性・ 標準ヘルパーやライブラリ➔置き換え・継承可能➔コアシステムクラスの置き換えや継承も可能• 標準のセッションクラスをPHP標準セッションに置き換える• 標準のActive RecordをやめてPropelを使う・ フックによる拡張➔フックポイントにコードを追加CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド30: 日本CodeIgniterユーザ会・ http://codeigniter.jp/・ CodeIgniter日本語言語パック/日本語ユーザガイド作成中・ メンバー募集中CodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan

スライド31: 新刊のお知らせAmazon.co.jpよりCodeIgniter and its logo are property of EllisLab Inc・ 日本初のCodeIgniter解説本『CodeIgniter徹底入門』・ 2008年6月9日、翔泳社より発売されました・ http://codeigniter.jp/tettei/CodeIgniter Users Group in Japan

スライド32: 終わり・ ご静聴ありがとうございましたCodeIgniter and its logo are property of EllisLab IncCodeIgniter Users Group in Japan