• Save
CakePHP2 Loading (Japanese)
Upcoming SlideShare
Loading in...5
×
 

CakePHP2 Loading (Japanese)

on

  • 4,829 views

CakePHP2のファイルローディングに関する資料

CakePHP2のファイルローディングに関する資料

Statistics

Views

Total Views
4,829
Views on SlideShare
3,509
Embed Views
1,320

Actions

Likes
1
Downloads
0
Comments
0

7 Embeds 1,320

http://d.hatena.ne.jp 1247
http://localhost 29
http://tipshare.info 28
url_unknown 8
http://webcache.googleusercontent.com 4
http://www.slideshare.net 2
http://cakephp.inop.info 2
More...

Accessibility

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    CakePHP2 Loading (Japanese) CakePHP2 Loading (Japanese) Presentation Transcript

    • ロード 第1章 Cakephp2 study 2011/6/25 Ichikaway
    • 自己紹介Yasushi Ichikawa@cakephperhttp://d.hatena.ne.jp/cakephper
    • KANAELhttp://kanael.net
    • LOADING• ファイル探索• ファイルインポート(include, require)• インスタンス生成
    • アジェンダ• App::build()• App::import()• AutoLoading• LazyLoading
    • App::build()• app/bootstrap.phpに定義• 標準以外の読み込みPATHを定義 – ex. 複数のプラグインフォルダを使いたい
    • App::build() 1.3App::build(array( controllers => array(   /home/user/app1/Controller,   /home/user/app2/Controller,  ))) 2.0App::build(array( Controller => array(   /home/user/app1/Controller,   /home/user/app2/Controller,  )))
    • アジェンダ• App::build()• App::import()• AutoLoading• LazyLoading
    • App::import()• ファイルの読み込み(include/require) – 例 App::import(Controller, UserGroup);• ファイル探索 – 1.3 : ディレクトリ再帰探索 – 2.0 : 再帰探索しない• ファイルのインポート処理 – 1.3:すぐにinclude, require – 2.0:クラス利用時にinclude, require
    • アジェンダ• App::build()• App::import()• AutoLoading• LazyLoading
    • Autoload• __autoload() – 未定義のクラス/インターフェイスを使用し ようとした時に 自動的にコールされる – new Hoge()するまでrequireしない • インポート負荷の軽減 function __autoload($class_name) { include $class_name . .php; } $obj = new MyClass1(); $obj2 = new MyClass2();
    • Autoload• App::uses(EmailComponent, Controller/Component) – クラス名と格納場所を登録するのみ• new EmailComponent()した時にautoloadの仕組みを 使ってincludeされる – App::load()がspl_autoload_register()から呼び出され る – cake/Cake/bootstrap.php • spl_autoload_register(array(App, load));
    • AutoloadAutoloadについて詳しく知りたい人は
    • アジェンダ• App::build()• App::import()• AutoLoading• LazyLoading
    • LazyLoading• AutoLoadingはinclude/requireのタイミング• LazyLoadingはインスタンス生成のタイミング
    • LazyLoading• CakePHP1.3 – アクションで利用しないモデルオブジェクトまで生成 class PostsController extends AppController { public $uses = array(Post,Event); function index() { $this->Post->recursive = 0; $this->set(posts, $this- >paginate()); }
    • LazyLoading• CakePHP1.3 – cake/dispatcher.php – controller::constructClasses() – controller::loadModel() – ClassRegistry::init() • new Model()
    • LazyLoading• CakePHP2.0 – Controller::usesで定義してもモデルオブジェク トは生成されない – コントローラのプロパティ変数($this->Model) にアクセスした時に初めてオブジェクト生成 • 不要なオブジェクト生成を回避 • マジックメソッドを利用
    • LazyLoading• CakePHP2.0 – $this->Post->find(); //controller – Controller::__get() でisset() – Controller::__isset() – Controller::loadModel() – ClassRegistry::init() • new Model()
    • Conclusion• CakePHP2.0 – Autoload, LazyLoadの機能によりパフォーマ ンスアップ – App::import()のPath再帰探索がなくなったの で注意
    • ロード 第2章へ・・・ Thank you http://www.facebook.com/CakeRadioGaGa