• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
はじめてのCodeIgniter
 

はじめてのCodeIgniter

on

  • 11,227 views

2011/02/19開催のCodeIgniterカンファレンスの講演資料です。

2011/02/19開催のCodeIgniterカンファレンスの講演資料です。

Statistics

Views

Total Views
11,227
Views on SlideShare
10,180
Embed Views
1,047

Actions

Likes
5
Downloads
51
Comments
2

12 Embeds 1,047

http://www.e2esound.com 738
http://doda.jp 193
http://cms.doda.jp 53
https://cms.doda.jp 35
http://localhost 10
http://www.naoina.info 6
http://paper.li 3
http://twitter.com 3
https://doda.jp 3
http://webcache.googleusercontent.com 1
http://ss.dotbranch.com 1
http://www.ivoryworks.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • コメントありがとうございます。来年は2日間で開催するのが目標とのことですので、お時間が合えば是非いらしてください。
    Are you sure you want to
    Your message goes here
    Processing…
  • ありがとうございます。
    仙台で参加出来なくても資料が頂けてうれしいです。
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    はじめてのCodeIgniter はじめてのCodeIgniter Presentation Transcript

    • はじめてのCodeIgniter CodeIgniter Con 2011, Tokyo Japan 2011/02/19 大田区産業プラザPiO 寺嶋祐也CodeIgniter and its logo are property of EllosLab inc
    • 上場企業で法務を やっていたはずが (中略)いつの間にやらプログラムを 書いていた!
    • おはようございます!法務系PHPerです。
    • 自己紹介氏名:寺嶋 祐也 / Yuya Terajima仕事:自営業Tw : @terakumaCI歴:1年8ヶ月特徴:CodeIgniterのVim辞書作ってる人
    • 内容・基礎編・CodeIgniterと他のFWの違い・実際の構築方法 ->スニペット管理ツール対象・初めてCodeIgniterを使う人・オリジナルのFWを使っている人・cakePHPやsymfonyを使っている人
    • 注意事項・記載するCodeIgniterとは、 CodeIgniter Reactorです・Ver.は2.0・ソースコードはgithubで公開中 -> https://github.com/e2esoundcom/ci-snippets
    • CodeIgniter基礎編
    • Q.CodeIgniterとは?・MVCフレームワーク・PHP 5.1.6・MySQL , Postgres, Oracle, SQLite, ODBC・EllisLab.inc + コミュニティにより開発 Core -> EllisLab.inc Reactor-> EllisLab.inc + コミュニティ +Reactor Engineers
    • 機能の追加はUser Voiceで
    • CodeIgniterの特徴(1)軽量・高速・最低限の構成ファイルをload・ライブラリのload方法も限定的対応可・合計2MB以下 ※ユーザーガイド等除く
    • CodeIgniterの特徴(2)高い拡張性・Coreも含めて拡張可・ライブラリ、ヘルパーも拡張可・コミュニティによる各種ライブラリ・多数紹介されるHack
    • CodeIgniterの特徴(3)低い学習コスト・学習のボリューム自体が低い・充実したユーザーガイド
    • 基本 クラスライブラリ ヘルパ
    • 2.0になって変わったこと・PHP4対応終了、PHP5.1.6以上へ・Scaffolding, Validation 削除・driver・CSRF保護機能の追加・キャッシュ機能強化(APC, memcache)・Bug Fix・各ライブラリにメソッド追加 …etc+ C と M の書き方が変わった
    • よくある質問1.他のフレームワークより凄いの?2.cakePHP/symfonyとCodeIgniterは 何が違うの?3.どんな規模の開発で使えるの?
    • CodeIgniterと他のFWの違い
    • CodeIgniterの特徴 ・軽量・高速 ・高い拡張性 ・低い学習コスト存在しない機能がある
    • ジェネレーター:自動生成機能 ツール自体がない 設定の記述が少ない 設置も簡単
    • Migration:DBバージョン管理 ありません。 もうちょっと待ちましょう
    • Modelの挙動symfonyの場合 引用元:Practical symfony 6日目データベースから、ORMと連携して、簡単にデータを取得できる機能
    • Modelの挙動CodeIgniterの場合 Modelは全部手書き
    • 但し、Hackはあります。 苦手なところも カバーができる拡張性!!
    • Viewの呼び出し:Layouts機能操作するコンテンツ以外の枠は1ファイルで管理呼出する機能
    • Viewの呼び出し CodeIgniterの場合 表示する度に個別に呼び出しview("header")view("contents")view("footer")
    • ※実はこれにもHackが 苦手なところも カバーができる拡張性!!
    • イメージRoR系 CodeIgniter
    • 個人的使い分け基準・Modelでどれだけのテーブルを扱うか・Hackでストレスなく対応できる範囲か基本的には…・小~中規模・APIを使う頻度が高いWebサービス
    • 使っている時の感想・アプリケーション全体の掌握感・気に入らなければ変えられる 容易な拡張性・スパゲティなコードと闘った後の 読み物としても重宝
    • スニペット管理ツールを作る - CI-SNIPPETS -
    • CI - SNIPPETS・スニペット管理ツール・SyntaxHighlighter・DBにデータを入れて引き出す程度・認証なし (デモ)
    • まずは、基本を押さえてみる
    • 基本:ディレクトリapplication/~ ・controllers ・models ・views ・helpers (自作の関数置くところ) ・libraries (自作のクラス置くところ)system/~は触れない
    • 基本:規約ControllerとModel共通のルール・ファイル名とクラス名は同一・クラス名の最初の1文字目は必ず大文字sample.php class Sample extends CI_Controller {}
    • 基本:Controller 基底のControllerを承継 初期化 ライブラリを呼出 ヘルパ呼出 アクションを定義
    • 基本:Model(1) 基底のModelを承継 初期化 メソッドを定義
    • 基本:Model(2)Controllerからの呼び出し方法 Modelファイル名 メソッドチェーンで使用
    • 基本:View(1) Viewファイル名 Controllerから配列で値を渡す
    • 基本:View(2)Controllerで渡した配列の中身 配列の添え字を変数として扱える
    • まとめ:覚えることライブラリ$this->load->library("name");ヘルパ$this->load->helper("name");View$this->load->view("file", $data);※値は配列で渡すModel +CとM$this->load->model("file"); のModelのメソッドを使う$this->model_name->function() フォーマット
    • インストール & 設定
    • ※今日のサンプルコードはgithubにありますhttps://github.com/e2esoundcom/ci-snippets
    • インストールhttps://bitbucket.org/codeigniter_jp/ci-ja/
    • 設定対象:4ファイル・application/config/config.php database.php・index.php・.htaccess
    • 設定:config.php・設置URL$config["base_url"] = "http://example.jp/"・URLプロトコル$config[uri_protocol] = "AUTO";・log$config[" log_threshold "] = 4・暗号化キー$config[encryption_key] = "(32文字乱数)"; + CSRF機能 $config[csrf_protection] = TRUE;
    • 設定:index.phpデフォルトでは…・$system_path = "system";・$application_folder = "application"; root/ applicasion/ ディレクトリを ドキュメントルート以外に system/ 設置する場合に変更 index.php
    • http://example.jp/にアクセス
    • 設定:database.php dbprefix => "sn_"
    • 少し話題を変えて URLの話
    • /index.php/controller/action/param index.phpカッコ悪い。
    • 設定:.htaccessewriteEngine onRewriteCond $1 !^(index¥.php|images|robots¥.txt)RewriteRule ^(.*)$ /index.php/$1 [L] root/ + config.phpを書換え applicasion/ $config[index_page] = ; system/ index.php .htaccess
    • 基本はこれだけ
    • 編集画面を作る・controller : edit.php・model : snippets_model.php・view : header.php footer.php + 個別のview
    • edit.php:~/edit ・設定ファイルから値の読込み ・viewの呼び出し
    • edit_view.php formヘルパ・CSRF保護機能を使う場合、必ずform_open() form_open()の度に、 hiddenフィールドを自動で
    • edit.php:~/edit/confirm form_validation・値の検証クラスライブラリ・ルールの記述はコンストラクタ or 設定ファイル $this->form_validation->run(); 成功ならTRUE, 失敗ならFALSE
    • ユーザー定義のルール・controllerに検証用の関数を用意 callback_function_name で検証ルールに指定
    • form_validationとset_value()の注意点・set_value()は、form_validationをrun()させないと値が取れない・set_value()で出力された値は、 htmlspecialchars()を通っている
    • Model
    • DBでデータを扱う方法大きく2つ・SQLを発行する方法・Active Recordを使う方法
    • 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生成
    • CodeIgniterの情報源・ユーザ会ML・ユーザ会フォーラム(準備中)・本家フォーラム・User Voice・Twitterの#codeigniter
    • Reactorになってから、 開発の速度が大幅にUP!さらなる機能の改善、 追加が見込まれています。
    • CodeIgniterでHappy Engineer Lifeを!!
    • ご清聴ありがとうございました。