CakePHPのレールの外し方 (CakePHP勉強会@uluru 20130419)

5,591 views

Published on

CakePHPのレールの外し方 (CakePHP勉強会@uluru 20130419)

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

No Downloads
Views
Total views
5,591
On SlideShare
0
From Embeds
0
Number of Embeds
2,971
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

CakePHPのレールの外し方 (CakePHP勉強会@uluru 20130419)

  1. 1. CakePHPのレールの外し方CakePHP勉強会#1 at uluru@cakephper / @ichikaway13年4月25日木曜日
  2. 2. 市川 快 @cakephperFukuoka.php主催13年4月25日木曜日
  3. 3. CakePHP2 実践入門13年4月25日木曜日
  4. 4. レール?レールに乗るCakePHPがデフォルトで色々裏でやってくれてる規約に従えばある程度の動きが少ないコードで実現13年4月25日木曜日
  5. 5. レール?レールをはずす(はずれる)CakePHPのデフォルト動作を変える細かいカスタマイズが可能一部不整合が出る場合がある13年4月25日木曜日
  6. 6. 何のために?生産性納期、コストプロジェクトメンバーサーバ環境・スペック13年4月25日木曜日
  7. 7. CakePHPはどこまでデザイナ寄りになれるのか?13年4月25日木曜日
  8. 8. 主にプログラマ作業の話をします13年4月25日木曜日
  9. 9. 想定ケースViewファイルにphpコードを組み込んだ後もhtmlのレイアウト修正が頻発するケース向きデザイナ側はPHPの実行環境が無いhtml, css, jsファイルのみでブラウザ確認13年4月25日木曜日
  10. 10. ケース1: .ctpやめてー13年4月25日木曜日
  11. 11. .ctpを.htmlに変更Viewファイル名app/View/Posts/index.ctp13年4月25日木曜日
  12. 12. .ctpを.htmlに変更コントローラの $extプロパティを変更class AuthorsController extends AppController {public $ext = .html;}13年4月25日木曜日
  13. 13. ケース2:レイアウトファイルやめてー13年4月25日木曜日
  14. 14. View/Posts/index.ctpView/Layout/default.ctpHeaderFooterView/Posts/add.ctpView/Layout/default.ctpHeaderFooter13年4月25日木曜日
  15. 15. View/Posts/index.ctpHeaderFooterView/Posts/add.ctpHeaderFooter13年4月25日木曜日
  16. 16. レイアウトOFFclass AuthorsController extends AppController {public $layout = false;}13年4月25日木曜日
  17. 17. レイアウトOFFメリットhtmlとして全ての要素が1ファイルに入ってるブラウザで正常に表示できるデメリット冗長(修正工数高い)DWなどのツールで解決??13年4月25日木曜日
  18. 18. ケース3:ディレクトリ構成がURLのパスとちがう!!13年4月25日木曜日
  19. 19. 初期htmlファイルの構成|- public_html/|-posts/|-index.html|- css/| |- base.css|- js/13年4月25日木曜日
  20. 20. CakePHPの構成app/|- View/| |- Posts/| |- index.ctp||- webroot/|- index.php|- css/| |- base.css|- js/URL: /posts/indexURL: /css/base.css13年4月25日木曜日
  21. 21. URLのPathとディレクトリPathの構造が違う13年4月25日木曜日
  22. 22. こんな感じにしたいapp/|- webroot/|- index.php|- Posts/| |- index.html|- css/| |- base.css|- js/URL: /posts/indexURL: /css/base.cssURLと実ファイルの相対パスが同じ13年4月25日木曜日
  23. 23. ディレクトリ構成の変更方法1 シンボリックリンクを貼るln -s app/webroot/Posts app/View/Posts方法2 viewPathを変更するViewディレクトリが増えてもシンボリックリンクを貼る手間が無い13年4月25日木曜日
  24. 24. 問題点URLを直接指定されても見えないように/posts/index.htmlディレクトリを作るとCakePHPにルーティングされない13年4月25日木曜日
  25. 25. 解決策/posts/ , /posts/index などのURL全て webroot/index.phpにリダイレクトmod_rewrite13年4月25日木曜日
  26. 26. リダイレクト設定app/|- webroot/|- index.php|- Posts/| |- .htaccess| |- index.html|- css/| |- base.css|- js/<IfModule mod_rewrite.c>RewriteEngine OnRewriteRule ^$ ../ [L]RewriteRule (.*) ../$1 [L]</IfModule>13年4月25日木曜日
  27. 27. Viewディレクトリの変更class PostsController extends AppController { public function beforeFilter() { $this->viewPath = ../webroot/ . $this->viewPath; }} ../webroot/Posts/(app/Viewからの相対パスを指定)13年4月25日木曜日
  28. 28. ケース4:PHPコードが多すぎ!13年4月25日木曜日
  29. 29. Helperなどを使わないcssやjsの指定はhtmlべた書き<?php echo $this->Html->css(cake.generic); ?><link rel="stylesheet" href="../css/cake.generic.css">13年4月25日木曜日
  30. 30. Helperなどを使わないFormヘルパーは極力使わない<?php echo echo $this->Form->input(name); ?><input name="data[Author][name]" type="text" id="AuthorName"value="<?php echo h( $this->request->data(Author.name) ); ?>">13年4月25日木曜日
  31. 31. ケース5:PHPコードが多すぎ!213年4月25日木曜日
  32. 32. PHPTAL使うとかhttps://github.com/nojimage/CakePHP-TALTAL13年4月25日木曜日
  33. 33. まとめレールをはずせば、ある程度は歩み寄れる冗長なファイル記述修正工数とのトレードオフHtml, Form, Jsべた書き独自実装とのトレードオフ13年4月25日木曜日
  34. 34. まとめ正解はないので、目の前の状況を見て変えていく or 合わせていく13年4月25日木曜日
  35. 35. 今日のコードhttps://github.com/ichikaway/cake4designer-sample113年4月25日木曜日
  36. 36. Thank you13年4月25日木曜日

×