8分で分かる最近のCakePHP

6,178 views
6,000 views

Published on

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,178
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 4分\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 7分\n
  • \n
  • \n
  • \n
  • 8分で分かる最近のCakePHP

    1. 1. 8分で分かる最近のCakePHP 2012/09/15 shin1x1 PHPカンファレンス2012
    2. 2. @shin1x1 • 新原 雅司(しんばら まさし) • 「Shin x blog」 http://www.1x1.jp/blog/ (c) 2012 Masashi Shinbara @shin1x1
    3. 3. Kansai PHP Users Group (c) (c) 2012 Masashi Shinbara @shin1x1 2012 Masashi Shinbara @shin1x1
    4. 4. Agenda • 今のCakePHPは? • 次のCakePHPは? • 新機能は何がある? (c) 2012 Masashi Shinbara @shin1x1
    5. 5. 今のCakePHPは? • CakePHP2.2.2が最新版 • PHP5.2.8以上(例外、PDO etc) • PSR-0に合わせたパス構造 • フレームワークをリファクタリング • lazy loadingによるパフォーマンス改善 • PHPUnit (c) 2012 Masashi Shinbara @shin1x1
    6. 6. いまどきのコントローラapp/Controller/PostsController.php<?phpApp::uses(AppController, Controller);class PostsController extends AppController { public $uses = array(Post); public function add() { if ($this->request->is(post)) { if ($this->Post->save($this->request->data)) { $this->Session->setFlash(Your post has been saved.); $this->redirect(array(action => index)); } else { $this->Session->setFlash(Unable to add your post.); } } }} (c) 2012 Masashi Shinbara @shin1x1
    7. 7. いまどきのコントローラapp/Controller/PostsController.php<?phpApp::uses(AppController, Controller);class PostsController extends AppController { public $uses = array(Post); public function add() { if ($this->request->is(post)) { if ($this->Post->save($this->request->data)) { $this->Session->setFlash(Your post has been saved.); $this->redirect(array(action => index)); } else { $this->Session->setFlash(Unable to add your post.); } } }} (c) 2012 Masashi Shinbara @shin1x1
    8. 8. いまどきのコントローラapp/Controller/PostsController.php<?phpApp::uses(AppController, Controller);class PostsController extends AppController { public $uses = array(Post); public function add() { if ($this->request->is(post)) { if ($this->Post->save($this->request->data)) { $this->Session->setFlash(Your post has been saved.); $this->redirect(array(action => index)); } else { $this->Session->setFlash(Unable to add your post.); } } }} (c) 2012 Masashi Shinbara @shin1x1
    9. 9. 次のCakePHP • 2.2.3が10月予定 • 2.3ブランチも開発中(新機能はこちら) • CakePHP3を発表 (c) 2012 Masashi Shinbara @shin1x1
    10. 10. CakePHP3 • PHP 5.4 以上 • Modelがオブジェクトを返す • namespace(PSR-0/1 対応) • traitsの利用 • 2013/N 登場? (c) 2012 Masashi Shinbara @shin1x1
    11. 11. 2.1,2.2の新機能 • ビューブロック、継承 • Event System (Dispatcher Filters) • Hash • ModelValidator (c) 2012 Masashi Shinbara @shin1x1
    12. 12. ビューブロック、継承 • Twigライクなビューブロック、継承 • 2.1から登場 (c) 2012 Masashi Shinbara @shin1x1
    13. 13. ビューブロック、継承 親テンプレート<h1><?php echo $this->fetch(title); ?></h1><?php echo $this->fetch(content); ?> ブロックを出力<div class="actions"> <h3>サイドバー</h3> <ul> <?php echo $this->fetch(sidebar); ?> </ul></div> (c) 2012 Masashi Shinbara @shin1x1
    14. 14. ビューブロック、継承 子テンプレート<?php $this->extend(/Common/view); ?><?php $this->start(title); ?>ビュー継承テスト<?php $this->end(); ?><?php $this->start(sidebar); ?><li>サイドバー1</li><li>サイドバー2</li><?php $this->end(); ?>ここはcontent (c) 2012 Masashi Shinbara @shin1x1
    15. 15. ビューブロック、継承 子テンプレート<?php $this->extend(/Common/view); ?> 継承<?php $this->start(title); ?>ビュー継承テスト<?php $this->end(); ?><?php $this->start(sidebar); ?><li>サイドバー1</li><li>サイドバー2</li><?php $this->end(); ?>ここはcontent (c) 2012 Masashi Shinbara @shin1x1
    16. 16. ビューブロック、継承 子テンプレート<?php $this->extend(/Common/view); ?> 継承<?php $this->start(title); ?>ビュー継承テスト<?php $this->end(); ?> ブロック定義<?php $this->start(sidebar); ?><li>サイドバー1</li><li>サイドバー2</li><?php $this->end(); ?>ここはcontent (c) 2012 Masashi Shinbara @shin1x1
    17. 17. ビューブロック、継承 子テンプレート<?php $this->extend(/Common/view); ?> 継承<?php $this->start(title); ?>ビュー継承テスト<?php $this->end(); ?> ブロック定義<?php $this->start(sidebar); ?><li>サイドバー1</li><li>サイドバー2</li><?php $this->end(); ?>ここはcontent contentブロック (c) 2012 Masashi Shinbara @shin1x1
    18. 18. Event System • 柔軟なイベント通知、リスナー実装 • Observerパターン • コールバックメソッド呼び出し • 2.1から登場 • Dispatcher Filters(2.2から) (c) 2012 Masashi Shinbara @shin1x1
    19. 19. Event System リスナーをアタッチ<?php$this->_eventManager = new CakeEventManager();$this->_eventManager->attach($this->Components);$this->_eventManager->attach($this); イベント通知<?php$this->getEventManager() ->dispatch(new CakeEvent(Controller.initialize, $this));$this->getEventManager() ->dispatch(new CakeEvent(Controller.startup, $this)); (c) 2012 Masashi Shinbara @shin1x1
    20. 20. Hashクラス • Set クラスが Hash クラスへ • Set クラスはCakePHP3では廃止 • 2.2から登場 (c) 2012 Masashi Shinbara @shin1x1
    21. 21. まとめ • これから使うなら最新版を(2.2.2) • Cookbookを参考に • もっとCakePHP2を知りたい人は。。。 (c) 2012 Masashi Shinbara @shin1x1
    22. 22. [告知] CakePHP2本が出ます 2012/09/29 発売! amazonで予約受付中 (c) 2012 Masashi Shinbara @shin1x1
    23. 23. ご清聴ありがとうございました! (c) 2012 Masashi Shinbara @shin1x1
    24. 24. 2.1,2.2の新機能 • ビューブロック、継承 • Event System • Hash (c) 2012 Masashi Shinbara @shin1x1

    ×