Your SlideShare is downloading. ×
  • Like
  • Save
CakePHP2 Loading (Japanese)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

CakePHP2 Loading (Japanese)

  • 4,507 views
Published

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

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

Published in Technology , Self Improvement
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,507
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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