SlideShare a Scribd company logo
CodeIgniter
                                     2008年大躍進のPHPフレームワーク
                                         日本CodeIgniterユーザ会
                                            Kenji Suzuki

                                                 2008/08/09
CodeIgniter and its logo are property of EllisLab Inc         CodeIgniter Users Group in Japan
CodeIgniterとは?


         アメリカEllisLab社が開発配布している
          オープンソースのPHPフレームワーク
         2006年2月リリース
         http://codeigniter.com/




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterとは?


         世界第4位のPHPフレームワーク




                                               Google Trendsによる検索数



CodeIgniter and its logo are property of EllisLab Inc                CodeIgniter Users Group in Japan
CodeIgniterの利用例




                                 http://www.opensourcefood.com/




CodeIgniter and its logo are property of EllisLab Inc             CodeIgniter Users Group in Japan
CodeIgniterの利用例




                                          http://www.2kurabe.com/




CodeIgniter and its logo are property of EllisLab Inc               CodeIgniter Users Group in Japan
フレームワークとは?


         Webアプリケーションフレームワークとは?
            ➔Webアプリケーションの「枠組み」
            ➔機能としては
                 •過去のプログラミングの経験則の
                  規約化
                 •頻繁に使う機能を抽象化
                  (モジュール化、ライブラリ化)
            ➔Webアプリケーション全体を見通しよく
             開発できるようにするもの

CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterに向いている人


         パフォーマンス命
         自由に書かせろ!
            ➔ 規約や制限が比較的少ない、拡張が容易
         ドキュメントのないソフトは使えません
         レンサバ大好き
            ➔ PHP4/5対応、PEAR不要、コマンドライン不要
         他のフレームワークに挫折しました...orz
         フレームワーク使ったことありません

CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterを使うメリット


         はやい
            ➔軽量で動作が高速
         やすい
            ➔習得し易い(低い学習コスト)
         うまい
            ➔過去の習慣(コンベンション)、
             優れた実践(グッドプラクティス)、
             およびノウハウなどが、
             ぐっと濃縮されてつまったもの

CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
MVCモデルとは?


         Controller(コントローラ)は、
          入力データに従って適切なデータを呼び出
          し、ModelやViewの連携など、アプリケーシ
          ョン全体の制御を行う
         Model(モデル)は、
          データベースへのアクセスやデータの修正
          /加工などの処理を行う
         View(ビュー)は、
          処理結果の表示など、画面表示を担当する


CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
MVCモデル




                                             Controller             呼び出し
      ・リクエスト                                流れの制御など
      ・データ入力
                                                               結果
                              結果
                                                                        Model
                                            結果          呼び出し        データの修正/加工など




                                             View
                                         見栄え、デザインなど




CodeIgniter and its logo are property of EllisLab Inc                CodeIgniter Users Group in Japan
CodeIgniterの構造


                                              index.php
                                                 ➔フロントコントローラ
                                              application
                                                 ➔アプリケーション固有
                                              system
                                                 ➔システム全体




CodeIgniter and its logo are property of EllisLab Inc        CodeIgniter Users Group in Japan
CodeIgniterの全体像




                                      セキュリティ                    データベース




                      ルーティング                              モデル                ライブラリ


index.php                                        コントローラ                       ヘルパー

                        キャッシュ                             ビュー                プラグイン




CodeIgniter and its logo are property of EllisLab Inc            CodeIgniter Users Group in Japan
URLの構造


         URIセグメントベース・アプローチ
         http://example.jp/controller_class/method/arg


       http://example.jp/shop/search/123

         class Shop extends Controller {

                  ...

                  function search($id)
                  {
                      $this­>load­>database();
                      ...
                  }
         }


CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
Controller

         Controllerクラスを継承
         index()メソッドはデフォルトメソッド
              ➔ http://example.jp/time_message/
          system/application/controllers/time_message.php
          class Time_message extends Controller {
               function index()
               {
                    // タイトル
                    $data['title'] = '時刻メッセージ';
                    // 現在の時刻
                    $data['now_time'] = date("H時i分s秒");

                             // テンプレートに変数を代入
                             $this­>load­>view('time_message_view', $data);
                    }
          }


CodeIgniter and its logo are property of EllisLab Inc        CodeIgniter Users Group in Japan
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 Inc     CodeIgniter Users Group in Japan
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 Inc     CodeIgniter Users Group in Japan
Model


         オプション(使わないことも可能)
         データベース・アクセスの方法
            ➔標準的な問い合わせ
            ➔Active Record




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
標準的な問い合わせ




   // 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 Inc   CodeIgniter Users Group in Japan
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 Inc   CodeIgniter Users Group in Japan
Model


         Modelクラスを継承
              system/application/models/shop_model.php
               class 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 Inc     CodeIgniter Users Group in Japan
Modelの使い方


         ロードする
            ➔ $this­>load­>model('Shop_model');

         メソッドを呼び出す
            ➔ $this­>Shop_model­>get_category_list();




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
ヘルパー


         主にビューで使う役に立つ関数群
         オブジェクト指向でなく手続き型
         どんなものがあるか?
            ➔日付ヘルパー(日付の生成や変換)
            ➔Formヘルパー(Form部品の生成)
            ➔セキュリティヘルパー(セキュリティ処理)
            ➔URLヘルパー(URLに関するもの)
            ➔その他もろもろ

CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
ヘルパーの使い方


         ロードする
            ➔$this­>load­>helper('url');
         使用する
            ➔anchor('search', '検索');


            <a href=”.../search”>検索</a>




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
ライブラリ(クラス)


         オブジェクト指向
         どんなものがあるか?
            ➔コアシステムクラス

                 •システムで自動的にロード
                 • 例、ベンチマーク、入力、出力
            ➔データベース関連のクラス
            ➔その他のクラス
                 •例、セッション、Email、
                  ページネーション(ページャ)
CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
ライブラリ(クラス)の使い方


         ロードする
            ➔ $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 Inc     CodeIgniter Users Group in Japan
CodeIgniterのセキュリティ


         フールプルーフではない!
            ➔フールプルーフとは?
             「よくわかっていない人が扱っても安全」
             -- http://e-words.jp/
            ➔○○を使っていれば安全
         ただし、CodeIgniterには、
            ➔自動的に働く内部セキュリティ機能
            ➔手動で利用するセキュリティ支援機能

                 •フレームワークを使わない場合より、
                  ずっと安全
CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterのセキュリティ


         内部セキュリティ機能
            ➔URIセキュリティ

                 •URIで使用できる文字を厳しく制限
            ➔GET、POST、クッキーデータ
                 •        GETデータはクリア
            ➔register_globals

                 •強制的にoffに

CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterのセキュリティ

         セキュリティ支援機能
            ➔ XSSフィルタリング

                 •セキュリティヘルパーと入力クラス
            ➔ バリデーション(検証)クラス

                 •POSTされたデータの検証・整形
            ➔ クエリのエスケープ処理

                 •$this->db->escape()メソッド
                 •バインディング(例、WHERE id=?)
                 •Active Recordでは自動的に
                  エスケープ処理
CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
CodeIgniterの高い拡張性


         標準ヘルパーやライブラリ
            ➔置き換え・継承可能
            ➔コアシステムクラスの置き換えや継承も
             可能
                 •標準のセッションクラスを
                  PHP標準セッションに置き換える

                 •標準のActive Recordをやめて
                  Propelを使う
         フックによる拡張
            ➔フックポイントにコードを追加
CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
日本CodeIgniterユーザ会


         http://codeigniter.jp/

         CodeIgniter日本語言語パック/
          日本語ユーザガイド作成中

         メンバー募集中




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan
新刊のお知らせ


                                             日本初のCodeIgniter解説本
                                              『CodeIgniter徹底入門』

                                             2008年6月9日、
                                              翔泳社より発売されました

                                             http://codeigniter.jp/tettei/



                             Amazon.co.jpより


CodeIgniter and its logo are property of EllisLab Inc         CodeIgniter Users Group in Japan
終わり


         ご静聴ありがとうございました




CodeIgniter and its logo are property of EllisLab Inc   CodeIgniter Users Group in Japan

More Related Content

PDF
CodeIgniterによるPhwittr
PDF
Attack Toolkit Webinar on Tobacco Industry Marketing
PPT
Resum Curs 2011 - 2012. Segona Part
PPT
1954
PDF
Ingeniører til lavpris
PPTX
Ece conf2011 ireid
PPT
Web API Classification Survey
CodeIgniterによるPhwittr
Attack Toolkit Webinar on Tobacco Industry Marketing
Resum Curs 2011 - 2012. Segona Part
1954
Ingeniører til lavpris
Ece conf2011 ireid
Web API Classification Survey

Viewers also liked (10)

PDF
Jaye Lapachet: CI Resources- the good, the bad and the ugly
PPTX
Sesja coachingowa ib
PDF
Attack toolkit webinar 9-7-11
PPT
Seguridad: sembrando confianza en el cloud
PDF
Communication issues TMT 2013
PPTX
2012 KM for Libraries webinar -Lapachet/Reynolds
PDF
Online Retailing Using Facebook Webinar
PDF
Zasady prezentacji 2
PPT
Say no to aborsi
PDF
Why agile is struggling in india naveen nanjundappa
Jaye Lapachet: CI Resources- the good, the bad and the ugly
Sesja coachingowa ib
Attack toolkit webinar 9-7-11
Seguridad: sembrando confianza en el cloud
Communication issues TMT 2013
2012 KM for Libraries webinar -Lapachet/Reynolds
Online Retailing Using Facebook Webinar
Zasady prezentacji 2
Say no to aborsi
Why agile is struggling in india naveen nanjundappa
Ad

Similar to CodeIgniter 〜 2008年大躍進のPHPフレームワーク (20)

PDF
はじめてのCodeIgniter
PDF
WTM53 phpフレームワーク いまさらcodeigniter
PDF
CodeIgniter入門
PDF
はじめてのMercurial/Bitbucket
PDF
Angularreflex20141210
PDF
PHPフレームワーク入門
PDF
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
PDF
PHP勉強会 #51
PDF
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
PDF
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
PDF
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
PDF
企業におけるSpring@日本springユーザー会20090624
PDF
Rancherを活用して開発効率を上げる
PDF
Java/Androidセキュアコーディング
PDF
ASP.NET MVC 2 ~新機能の紹介~
PDF
jQuery と MVC で実践する標準志向 Web 開発
PDF
Oracle APEX概要
PDF
Software Development with Symfony
PDF
IDEを目指す開発者コンソール
PDF
AndroidでDIxAOP
はじめてのCodeIgniter
WTM53 phpフレームワーク いまさらcodeigniter
CodeIgniter入門
はじめてのMercurial/Bitbucket
Angularreflex20141210
PHPフレームワーク入門
【アシアル塾】PHPオブジェクト指向再入門・第四回デザインパターンに学ぶクラス設計
PHP勉強会 #51
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
企業におけるSpring@日本springユーザー会20090624
Rancherを活用して開発効率を上げる
Java/Androidセキュアコーディング
ASP.NET MVC 2 ~新機能の紹介~
jQuery と MVC で実践する標準志向 Web 開発
Oracle APEX概要
Software Development with Symfony
IDEを目指す開発者コンソール
AndroidでDIxAOP
Ad

More from kenjis (15)

PDF
AspectMock 最強のモッキングフレームワーク
PDF
『はじめてのフレームワークとしてのFuelPHP 改訂版(第2版)』のポイント
PDF
10分でわかるFuelPHP @ OSC2013 Nagoya
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
PDF
10分でわかるFuelPHP @ 2011/12
PDF
はじめてのMercurial/Bitbucket その2
PDF
フレームワーク入門書の決定版が完成
PDF
達人出版会からPHPの本を出版しよう
PDF
FuelPHPでのファイルアップロード
PDF
CodeIgniter 最新情報 2011 (増補版)
PDF
CodeIgniterユーザガイドの翻訳に参加しよう!
PDF
CodeIgniter 最新情報 2010
PDF
『PHP逆引きレシピ』とセキュリティのこと
PDF
CodeIgniter 貴方はどのフレームワークを使うべきか?
AspectMock 最強のモッキングフレームワーク
『はじめてのフレームワークとしてのFuelPHP 改訂版(第2版)』のポイント
10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2011/12
はじめてのMercurial/Bitbucket その2
フレームワーク入門書の決定版が完成
達人出版会からPHPの本を出版しよう
FuelPHPでのファイルアップロード
CodeIgniter 最新情報 2011 (増補版)
CodeIgniterユーザガイドの翻訳に参加しよう!
CodeIgniter 最新情報 2010
『PHP逆引きレシピ』とセキュリティのこと
CodeIgniter 貴方はどのフレームワークを使うべきか?

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

  • 1. CodeIgniter 2008年大躍進のPHPフレームワーク 日本CodeIgniterユーザ会 Kenji Suzuki 2008/08/09 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 2. CodeIgniterとは?  アメリカEllisLab社が開発配布している オープンソースのPHPフレームワーク  2006年2月リリース  http://codeigniter.com/ CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 3. CodeIgniterとは?  世界第4位のPHPフレームワーク Google Trendsによる検索数 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 4. CodeIgniterの利用例 http://www.opensourcefood.com/ CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 5. CodeIgniterの利用例 http://www.2kurabe.com/ CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 6. フレームワークとは?  Webアプリケーションフレームワークとは? ➔Webアプリケーションの「枠組み」 ➔機能としては •過去のプログラミングの経験則の 規約化 •頻繁に使う機能を抽象化 (モジュール化、ライブラリ化) ➔Webアプリケーション全体を見通しよく 開発できるようにするもの CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 7. CodeIgniterに向いている人  パフォーマンス命  自由に書かせろ! ➔ 規約や制限が比較的少ない、拡張が容易  ドキュメントのないソフトは使えません  レンサバ大好き ➔ PHP4/5対応、PEAR不要、コマンドライン不要  他のフレームワークに挫折しました...orz  フレームワーク使ったことありません CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 8. CodeIgniterを使うメリット  はやい ➔軽量で動作が高速  やすい ➔習得し易い(低い学習コスト)  うまい ➔過去の習慣(コンベンション)、 優れた実践(グッドプラクティス)、 およびノウハウなどが、 ぐっと濃縮されてつまったもの CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 9. MVCモデルとは?  Controller(コントローラ)は、 入力データに従って適切なデータを呼び出 し、ModelやViewの連携など、アプリケーシ ョン全体の制御を行う  Model(モデル)は、 データベースへのアクセスやデータの修正 /加工などの処理を行う  View(ビュー)は、 処理結果の表示など、画面表示を担当する CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 10. MVCモデル Controller 呼び出し ・リクエスト 流れの制御など ・データ入力 結果 結果 Model 結果 呼び出し データの修正/加工など View 見栄え、デザインなど CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 11. CodeIgniterの構造  index.php ➔フロントコントローラ  application ➔アプリケーション固有  system ➔システム全体 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 12. CodeIgniterの全体像 セキュリティ データベース ルーティング モデル ライブラリ index.php コントローラ ヘルパー キャッシュ ビュー プラグイン CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 13. URLの構造  URIセグメントベース・アプローチ http://example.jp/controller_class/method/arg http://example.jp/shop/search/123 class Shop extends Controller { ... function search($id) { $this­>load­>database(); ... } } CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 14. Controller  Controllerクラスを継承  index()メソッドはデフォルトメソッド ➔ http://example.jp/time_message/ system/application/controllers/time_message.php class Time_message extends Controller { function index() { // タイトル $data['title'] = '時刻メッセージ'; // 現在の時刻 $data['now_time'] = date("H時i分s秒"); // テンプレートに変数を代入 $this­>load­>view('time_message_view', $data); } } CodeIgniter and its logo are property of EllisLab Inc 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 Inc CodeIgniter 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 Inc CodeIgniter Users Group in Japan
  • 17. Model  オプション(使わないことも可能)  データベース・アクセスの方法 ➔標準的な問い合わせ ➔Active Record CodeIgniter and its logo are property of EllisLab Inc CodeIgniter 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 Inc CodeIgniter 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 Inc CodeIgniter Users Group in Japan
  • 20. Model  Modelクラスを継承 system/application/models/shop_model.php class 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 Inc CodeIgniter 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 Inc CodeIgniter Users Group in Japan
  • 22. ヘルパー  主にビューで使う役に立つ関数群  オブジェクト指向でなく手続き型  どんなものがあるか? ➔日付ヘルパー(日付の生成や変換) ➔Formヘルパー(Form部品の生成) ➔セキュリティヘルパー(セキュリティ処理) ➔URLヘルパー(URLに関するもの) ➔その他もろもろ CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 23. ヘルパーの使い方  ロードする ➔$this­>load­>helper('url');  使用する ➔anchor('search', '検索'); <a href=”.../search”>検索</a> CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 24. ライブラリ(クラス)  オブジェクト指向  どんなものがあるか? ➔コアシステムクラス •システムで自動的にロード • 例、ベンチマーク、入力、出力 ➔データベース関連のクラス ➔その他のクラス •例、セッション、Email、 ページネーション(ページャ) CodeIgniter and its logo are property of EllisLab Inc CodeIgniter 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 Inc CodeIgniter Users Group in Japan
  • 26. CodeIgniterのセキュリティ  フールプルーフではない! ➔フールプルーフとは? 「よくわかっていない人が扱っても安全」 -- http://e-words.jp/ ➔○○を使っていれば安全  ただし、CodeIgniterには、 ➔自動的に働く内部セキュリティ機能 ➔手動で利用するセキュリティ支援機能 •フレームワークを使わない場合より、 ずっと安全 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 27. CodeIgniterのセキュリティ  内部セキュリティ機能 ➔URIセキュリティ •URIで使用できる文字を厳しく制限 ➔GET、POST、クッキーデータ • GETデータはクリア ➔register_globals •強制的にoffに CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 28. CodeIgniterのセキュリティ  セキュリティ支援機能 ➔ XSSフィルタリング •セキュリティヘルパーと入力クラス ➔ バリデーション(検証)クラス •POSTされたデータの検証・整形 ➔ クエリのエスケープ処理 •$this->db->escape()メソッド •バインディング(例、WHERE id=?) •Active Recordでは自動的に エスケープ処理 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 29. CodeIgniterの高い拡張性  標準ヘルパーやライブラリ ➔置き換え・継承可能 ➔コアシステムクラスの置き換えや継承も 可能 •標準のセッションクラスを PHP標準セッションに置き換える •標準のActive Recordをやめて Propelを使う  フックによる拡張 ➔フックポイントにコードを追加 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 30. 日本CodeIgniterユーザ会  http://codeigniter.jp/  CodeIgniter日本語言語パック/ 日本語ユーザガイド作成中  メンバー募集中 CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 31. 新刊のお知らせ  日本初のCodeIgniter解説本 『CodeIgniter徹底入門』  2008年6月9日、 翔泳社より発売されました  http://codeigniter.jp/tettei/ Amazon.co.jpより CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan
  • 32. 終わり  ご静聴ありがとうございました CodeIgniter and its logo are property of EllisLab Inc CodeIgniter Users Group in Japan