Your SlideShare is downloading. ×
0
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Cakephp tokyo5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cakephp tokyo5

5,238

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,238
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
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. 2010/5/29 CakePHP Study Meetup @tokyo #5 ichikawa (id:cakephper) ‏ (id:ichikaway) CakePHP1.3 Stable
  • 2. Self-introduction Yasushi Ichikawa Twitter (Japanese) : @cakephper Twitter (English) : @ichikaway Blog Cakephper diary ( CakePHP 、 MongoDB ) http://d.hatena.ne.jp/cakephper
  • 3. Self-introduction <ul><li>I've used the Cakephp since Aug 2008. </li></ul><ul><li>Author of the SQL Explain Component </li></ul><ul><li>-> Contributor of the Debug_kit </li></ul><ul><li>Author of the Cakephp MongoDB-Datasource </li></ul><ul><li>My code for Cakephp </li></ul><ul><li>http://github.com/ichikaway </li></ul><ul><li>XformHelper </li></ul><ul><li>MongoDB-Datasource </li></ul><ul><li>cakeplus </li></ul>
  • 4. Topic <ul><li>CakePHP History </li></ul><ul><li>CakePHP1.3 Resources </li></ul><ul><li>CakePHP1.3 New Features </li></ul><ul><li>CakePHP1.3 Migration </li></ul>
  • 5. CakePHP History <ul><li>CakePHP1.2 </li></ul><ul><ul><li>Stable Release(2008/12) </li></ul></ul><ul><li>CakePHP1.3 </li></ul><ul><ul><li>Stable Release(2010/4) </li></ul></ul><ul><ul><li>PHP4, 5 </li></ul></ul><ul><li>CakePHP2.0 </li></ul><ul><ul><li>PHP5.2 </li></ul></ul>
  • 6. CakePHP History <ul><li>CakePHP1.3 Stable Release(1.5 year) </li></ul><ul><ul><ul><li>Thanks a lot, Cakephp Team! </li></ul></ul></ul><ul><li>Contribution </li></ul><ul><ul><ul><li>Code </li></ul></ul></ul><ul><ul><ul><li>Ticket/Patch </li></ul></ul></ul><ul><ul><ul><li>Document / Translation </li></ul></ul></ul><ul><ul><ul><li>Donation </li></ul></ul></ul>
  • 7. CakePHP Donation http://pledgie.com/campaigns/7311
  • 8. CakePHP Donation
  • 9. CakePHP Donation Edit profile(paypal email address) after login.
  • 10. CakePHP Donation http://pledgie.com/campaigns/7311
  • 11. CakePHP Donation 寄付は $5 以上にした方が良いです。 Paypal 手数料が差し引かれるので。
  • 12. CakePHP Donation
  • 13. CakePHP Donation
  • 14. Easy, Let's try :)
  • 15. Topic <ul><li>CakePHP History </li></ul><ul><li>CakePHP1.3 Resources </li></ul><ul><li>CakePHP1.3 New Features </li></ul><ul><li>CakePHP1.3 Migration </li></ul>
  • 16. CakePHP1.3 Resources <ul><li>Cakephp Core Code </li></ul><ul><ul><li>よく分からない場合はコードを見た方が早い </li></ul></ul><ul><ul><li>http ://github.com/cakephp/cakephp </li></ul></ul><ul><li>API マニュアル </li></ul><ul><ul><li>各クラスの説明、メソッドの説明 </li></ul></ul><ul><ul><li>ここにしか書いていない情報もある </li></ul></ul><ul><ul><li>http://api.cakephp.org </li></ul></ul><ul><li>Cake CookBook </li></ul><ul><ul><li>Cake の解説、チュートリアル </li></ul></ul><ul><ul><li>英語版と日本語版の不整合に注意 </li></ul></ul><ul><ul><li>http ://book.cakephp.org/view/875/x1-3-Collection </li></ul></ul>
  • 17. CookBook difference JP/EN
  • 18. Topic <ul><li>CakePHP History </li></ul><ul><li>CakePHP1.3 Resources </li></ul><ul><li>CakePHP1.3 New Features </li></ul><ul><li>CakePHP1.3 Migration </li></ul>
  • 19. CakePHP1.3 New Features <ul><li>Routes </li></ul><ul><li>Virtual Fields </li></ul><ul><li>Validation </li></ul><ul><li>Bake </li></ul><ul><li>etc </li></ul>http://book.cakephp.org/ja/view/1572/New-features-in-CakePHP-1-3
  • 20. CakePHP1.3 New Features <ul><li>Routes </li></ul><ul><ul><li>Prefix Routing </li></ul></ul><ul><ul><ul><li>Admin ルーティングと同じ扱いに </li></ul></ul></ul><ul><ul><li>RouteClass </li></ul></ul><ul><ul><ul><li>ルーティング処理マッチング時に自作クラス呼び出し </li></ul></ul></ul><ul><ul><ul><li>DB の値を見てマッチング処理を行うなど </li></ul></ul></ul><ul><ul><ul><ul><li>例 1: 該当の slug が DB にあれば routing する </li></ul></ul></ul></ul><ul><ul><ul><ul><li>例 2: url の一部変更でリダイレクト </li></ul></ul></ul></ul>
  • 21. CakePHP1.3 New Features <ul><li>RouteClass </li></ul><ul><ul><li>config/routes.php </li></ul></ul>http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp App::import('Lib', 'routes/SlugRoute'); Router::connect( '/:slug', array('controller' => 'posts', 'action' => 'view'), array('routeClass' => 'SlugRoute') );
  • 22. CakePHP1.3 New Features <ul><li>RouteClass </li></ul><ul><ul><li>app/libs/routes/slug_route.php </li></ul></ul>http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp class SlugRoute extends CakeRoute { function parse($url) { $params = parent::parse($url); App::import('Model', 'Post'); $Post = new Post(); $count = $Post->find('count', array('conditions' => array('Post.slug LIKE ?' => $params['slug'] .'%')); if ($count) { return $params;} return false; }}
  • 23. CakePHP1.3 New Features <ul><li>Virtual Fields </li></ul><ul><ul><li>DB カラムを仮想定義して、 Field として扱える </li></ul></ul><ul><ul><li>Field で表示する内容は SQL 文で定義 </li></ul></ul><ul><ul><ul><li>例: fullname カラムに姓名を表示 </li></ul></ul></ul><ul><ul><ul><li>'fullname' => “CONCAT(User.Fname, ' ', User.Lname)” </li></ul></ul></ul><ul><ul><li>参考:「 VitualFields を使おう!」 hiromi2424 さん </li></ul></ul><ul><ul><ul><li>http://d.hatena.ne.jp/hiromi2424/20100204/1265274976 </li></ul></ul></ul>
  • 24. CakePHP1.3 New Features <ul><li>Validation </li></ul><ul><ul><li>マルチバイト対応 </li></ul></ul><ul><ul><ul><li>maxLength() などは mb_strlen() を利用 </li></ul></ul></ul><ul><ul><ul><li>mb_strlen() が定義されてなければマルチバイトクラスの Multibyte::strlen() を利用 </li></ul></ul></ul><ul><ul><li>国別のルールを適用 </li></ul></ul><ul><ul><ul><ul><ul><li>Phone, postcode, SSN </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>国別のマッチングルールを適用可能 </li></ul></ul></ul></ul></ul><ul><ul><ul><li>例:日本の postcode なら 222-3333 というルール </li></ul></ul></ul><ul><ul><ul><li>http://github.com/cakephp/localized </li></ul></ul></ul>
  • 25. CakePHP1.3 New Features <ul><li>Validation </li></ul><ul><ul><li>国別のルール適用例 </li></ul></ul>// In your Model App::import('Lib', 'Localized.JpValidation' ); class Post extends AppModel { var $validate = array( 'postal' => array( 'valid' => array( 'rule' => array('postal', null, ' jp '), 'message' => ' 郵便番号が違います ' ) ) );}
  • 26. CakePHP1.3 New Features <ul><li>Bake </li></ul><ul><ul><li>テンプレート </li></ul></ul><ul><ul><ul><li>コントローラやモデルの雛形を容易にカスタマイズ </li></ul></ul></ul><ul><ul><ul><ul><li>cake/console/templates/default </li></ul></ul></ul></ul><ul><ul><ul><ul><li>例 : 確認画面の処理を含む bake など </li></ul></ul></ul></ul><ul><ul><li>Bake fixture </li></ul></ul><ul><ul><ul><li>Fixture のみを生成 </li></ul></ul></ul><ul><ul><ul><li>ダミーデータや実 DB データをセット可能 </li></ul></ul></ul><ul><ul><ul><ul><li>bake fixture -records で実 DB データセット </li></ul></ul></ul></ul>
  • 27. CakePHP1.3 New Features <ul><li>他にも色々新機能があります </li></ul><ul><ul><li>JsHelper </li></ul></ul><ul><ul><ul><li>Jquery, Prototype, Mootools を透過的に扱う </li></ul></ul></ul><ul><ul><ul><ul><li>$js->get('#foo')->event('click', $eventCode); </li></ul></ul></ul></ul><ul><ul><li>Helper::assetTimestamp($path) </li></ul></ul><ul><ul><ul><li>CSS や画像の URL にタイムスタンプ追加 </li></ul></ul></ul><ul><ul><li>App::import(' Lib ', 'fooBar'); </li></ul></ul><ul><ul><ul><li>imports app/ libs /foo_bar.php </li></ul></ul></ul><ul><ul><li>Validation::ip($someAddress, 'IPv4'); //IPv6 もあるよ </li></ul></ul>
  • 28. CakePHP1.3 New Features <ul><li>より詳細な情報は New features in CakePHP 1.3 参照 </li></ul><ul><ul><li>CakeBook 11.2 章 付録 </li></ul></ul><ul><ul><ul><li>日本語 </li></ul></ul></ul><ul><ul><ul><ul><li>http://book.cakephp.org/ja/view/1572/New-features-in-CakePHP-1-3 </li></ul></ul></ul></ul><ul><ul><ul><li>英語 </li></ul></ul></ul><ul><ul><ul><ul><li>http://book.cakephp.org/view/1572/New-features-in-CakePHP-1-3 </li></ul></ul></ul></ul>
  • 29. Topic <ul><li>CakePHP History </li></ul><ul><li>CakePHP1.3 Resources </li></ul><ul><li>CakePHP1.3 New Features </li></ul><ul><li>CakePHP1.3 Migration </li></ul>
  • 30. CakePHP1.3 Change from 1.2 <ul><ul><li>Helper, Component の自動読み込み廃止 </li></ul></ul><ul><ul><ul><li>Session, html ヘルパー、 Session コンポーネント </li></ul></ul></ul><ul><ul><li>del() は delete() に </li></ul></ul><ul><ul><ul><li>$this->Session->delete(); </li></ul></ul></ul><ul><ul><ul><li>Model->delete(); </li></ul></ul></ul><ul><ul><li>View </li></ul></ul><ul><ul><ul><li>Helper 呼び出し $this->Helper->method() </li></ul></ul></ul><ul><ul><ul><li>$this->element() (renderElement() の廃止 ) </li></ul></ul></ul><ul><ul><ul><li>echo $this->Session->flash(); </li></ul></ul></ul>
  • 31. CakePHP1.3 Change from 1.2 <ul><li>タイトル </li></ul><ul><ul><li>Controller::pageTitle 廃止 </li></ul></ul><ul><ul><li>$this->set('title_for_layout', $var); </li></ul></ul><ul><li>SQL ダンプ表示は Layout に下記必須 </li></ul><ul><ul><li><?php echo $this->element('sql_dump'); ?> </li></ul></ul><ul><li>Find </li></ul><ul><ul><li>findAll は、 find('all') に </li></ul></ul>
  • 32. CakePHP1.3 Change from 1.2 <ul><li>Bootstrap </li></ul><ul><ul><li>フォルダ構成を自由に定義可能 </li></ul></ul><ul><ul><ul><li>plugin, model, view, controller, datasource, behavior, component, helper, vendor, shell, locale </li></ul></ul></ul><ul><ul><li>複数 Path 定義可能 </li></ul></ul>App::build(array( 'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/'), 'models' => array('/full/path/to/models/', '/next/full/path/to/models/'), 'controllers' => array('/full/path/to/controllers/', '/next/full/path/to/controllers/'), 'behaviors' => array('/full/path/to/behaviors/', '/next/full/path/to/behaviors/'), 'helpers' => array('/full/path/to/helpers/', '/next/full/path/to/helpers/'), ));
  • 33. Migration CakePHP1.2 to 1.3 <ul><li>より詳細な情報はマイグレーションガイドを参照 </li></ul><ul><ul><li>CakeBook の 11.1 章 付録 </li></ul></ul><ul><ul><ul><li>英語 </li></ul></ul></ul><ul><ul><ul><ul><li>http://book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3 </li></ul></ul></ul></ul><ul><ul><ul><li>日本語 </li></ul></ul></ul><ul><ul><ul><ul><li>http://book.cakephp.org/ja/view/1561/Migrating-from-CakePHP-1-2-to-1-3 </li></ul></ul></ul></ul><ul><li>使用しない方が良い / できないメソッド等の一覧 (MASA-P) </li></ul><ul><ul><li>http://blog.ecworks.jp/archives/1120 </li></ul></ul>
  • 34. まとめ <ul><li>CakePHP History </li></ul><ul><li>CakePHP1.3 Resources </li></ul><ul><li>CakePHP1.3 New Features </li></ul><ul><ul><li>Routes, Model, Validation, Bake </li></ul></ul><ul><li>CakePHP1.3 Migration </li></ul><ul><ul><li>はまったらすぐにマイグレーションガイド </li></ul></ul>
  • 35. ありがとうございました Thank you

×