Phpcon kansani-2013-pinoco

2,736 views
2,666 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,736
On SlideShare
0
From Embeds
0
Number of Embeds
2,103
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Phpcon kansani-2013-pinoco

  1. 1. 恒例となりましたPinocoのお時間まじめに紹介してみる
  2. 2. たなかひさてる@tanakahisateruPinoco developerPHPTAL contributorFirebug translation contributorYii framework user
  3. 3. テンプレートエンジン何使ってますか
  4. 4. デザイナーが書いたHTML<ul><li><a href="#">menu1</a></li><li><a href="#">menu2</a></li><li><a href="#">menu3</a></li></ul>
  5. 5. PHPerが触るとこうなっちゃう<ul><?php foreach ($menuItems as $item): ?><li><a href="<?= $item[link] ?>"><?= htmlspecialchars($item[label]) ?></a></li><?php /*<li><a href="#">menu2</a></li><li><a href="#">menu3</a></li>*/ ?><?php endforeach; ?></ul>
  6. 6. インデント変わってね?<ul><?php foreach ($menuItems as $item): ?><li><a href="<?= $item[link] ?>"><?= htmlspecialchars($item[label]) ?></a></li><?php /*<li><a href="#">menu2</a></li><li><a href="#">menu3</a></li>*/ ?><?php endforeach; ?></ul>
  7. 7. でもこれ読みにくい<ul><?php foreach ($menuItems as $item): ?><li><a href="<?= $item[link] ?>"><?= htmlspecialchars($item[label]) ?></a></li><?php /*<li><a href="#">menu2</a></li><li><a href="#">menu3</a></li>*/ ?><?php endforeach; ?></ul>
  8. 8. 問題点HTMLのインデント方針→DOM構造テンプレートエンジン→分岐と繰り返し意味構造の違う言語が混ざっているSmartyやTwigでもこれは同じ
  9. 9. TAL = Template AttributeLanguage (Python文化)
  10. 10. TALの文法で書くと<ul><li tal:repeat="item menuItems"><a href="#"tal:attributes="href item/link"tal:content="item/label">menu1</a></li><li tal:replace=""><a href="#">menu2</a></li><li tal:replace=""><a href="#">menu3</a></li></ul>
  11. 11. HTML - TAL<ul><li tal:repeat="item menuItems"><a href="#"tal:attributes="href item/link"tal:content="item/label">menu1</a></li><li tal:replace=""><a href="#">menu2</a></li><li tal:replace=""><a href="#">menu3</a></li></ul>最初の<a>でちょっとズルしてるけど許して<ul><li><a href="#">menu1</a></li><li><a href="#">menu2</a></li><li><a href="#">menu3</a></li></ul>
  12. 12. TALTALはXHTMLの名前空間で実現されるつまりHTMLと構文システムを共有HTMLバリデータを通るということは...
  13. 13. 単体でブラウザに出せる
  14. 14. TAL導入の動機ブラウザ側技術の高度化ユーザビリティ最優先でデザインされたUIへのニーズフロントエンド側のコードにも品質が求められる
  15. 15. http://phptal.org/
  16. 16. なぜか保守メンバーになりました。よろしくお願いします。
  17. 17. これ、すぐに使いたい人は
  18. 18. Pinocoもっとも静的サイトに近いフレームワーク
  19. 19. http://tanakahisateru.github.io/pinoco/
  20. 20. $ cd _app$ ./serverPHP 5.4.13 Development Server started at Thu May 30 18:08:04 2013Listening on http://localhost:8801Document root is /Users/tanakahisateru/Sites/pinoco-testPress Ctrl-C to quit.「すぐに」は本当にすぐにビルトインサーバ対応
  21. 21. 最近のPinocoPhpStormのOSライセンスもらってコード品質超改善。難しいプログラミングの開発案件でも、中のライブラリを取り出して使うと大活躍。0.8をリリース → ベータ期間終了予定。APIドキュメントをオンラインに。そろそろワークショップをやりたいと思っています。
  22. 22. とか面白くないので最新機能
  23. 23. 静的サイト構造を維持したビューとロジックの分離はそのままにロジックHTML(+TALの属性)
  24. 24. ナウいルーターを挿入可能にました$router = $this->route();$router->pass(array( // 無視するパス(後続のスクリプトに委譲される),index.html,))->on(list, function() {// 一覧表を出力})->on(show/{id}, function($id) {// IDで取得して詳細を出力})->on(POST:upload, function() {// POSTでデータ更新})->on(GET:upload, array($this, forbidden)) // 403->on(*, array($this, notfound)); // 404
  25. 25. やりやすくなったこと:ビューを持たないアクションとかJSON返すRESTなAPIとか
  26. 26. プレーンPHPからの移行をお待ちしております。

×