Your SlideShare is downloading. ×
0
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
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

ここがすごい! なぞとPHP5.3

1,709

Published on

LOCAL PHP勉強会09

LOCAL PHP勉強会09

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,709
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
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. ここがすごい!なぞとPHP5.3 <br />佐藤琢哉<br />LOCAL PHP部<br />
  • 2. はじめに<br />
  • 3. なぞはすごくないです!!!<br />
  • 4. 自己紹介<br />佐藤琢哉 aka nazo<br />旭川->東京->札幌<br />LOCAL PHP部<br />Hatena : nazone<br />twitter : nazo<br />
  • 5. アジェンダ<br />PHP5.3おさらい<br />lithiumについて<br />
  • 6. PHP5.3おさらい<br />
  • 7. 何が変わった5.3?<br />名前空間<br />staticメソッドに関する追加機能<br />goto<br />無名関数<br />Phar<br />その他細かい変更<br />
  • 8. 名前空間<br />¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥<br />名前空間を解決するための仕組み<br />namespaceで囲む<br />useで宣言すると省略できる<br />
  • 9. staticメソッドに関する追加機能<br />遅延静的束縛(late static binding)<br />呼び出し方法によって実行するメソッドを実行時に切り替える<br />動的静的呼び出し(Dynamic Static Call)<br />$a::foo();<br />なぜ今までできなかったのかが謎<br />__callStatic<br />__callのstatic版<br />O/Rマッパーとかで効果が出てくると思われる?<br />
  • 10. goto<br />使うな!!!<br />
  • 11. 無名関数(lambda)<br />JavaScriptやってる人ならおなじみ<br />無名関数≠クロージャ(よく間違えられる)<br />lambdaと呼ぶのはLisp方面が元ネタらしい<br />従来create_functionで一応作れたが、非常に面倒だった<br />クロージャ:無名(に限らないが)関数内の変数を解決するときに、その関数が定義されたスコープでの変数を参照する仕組み<br />
  • 12. Phar<br />PHPのソースをtarとかzipで固めて、それをそのままPHPからincludeできるようにする仕組み<br />Pythonのeggみたいなやつ(?)<br />
  • 13. 細かい変更<br />公式のドキュメントを読めば何が非推奨かとか書いてあるから、ある程度はそこをチェックしながら<br />微妙に互換性のない修正もあるので、なんか変だと思ったらチェックしてみよう<br />PHP5な書き方をしていればそこまで変にはならない<br />
  • 14. インストール<br />基本的にソースから入れるのがいい<br />WindowsならXAMPPを入れれば最初から5.3になる<br />でも5.3メインで開発することはまだ少ない気がする<br />debian、ubuntu系ならdotdebにパッケージがある(が、入れると当然5.2は消える)<br />
  • 15. インストール<br />5.3.2はビルド時にSEGVを出すバグがあるっぽいので、5.3.1を入れたほうがいいかも(詳細不明)<br />http://bugs.php.net/bug.php?id=51216<br />
  • 16. lithiumについて<br />
  • 17. lithiumってなに?<br />PHP5.3専用フレームワーク<br />CakePHPを作っていたGarrett WoodworthとかNate Abeleとかって人がCakePHPプロジェクトから離脱して作り始めた<br />CakePHPっぽさが随所に残っている<br />まだ正式版ではない<br />http://rad-dev.org/<br />
  • 18. 主な特徴<br />PHP5.3専用<br />MongoDBなどのDBにも対応(むしろ推奨している印象)<br />CakePHPっぽく書けるが先進的な機能も豊富<br />フィルタ機能で好きなところを改造できる<br />
  • 19. ダウンロードインストール<br />
  • 20. ダウンロード<br />http://rad-dev.org/lithium/wiki/drafts/blog-tutorialを参考に<br />ここで見るとMongoDBを使っているが、今回はMySQLで行う<br />http://rad-dev.org/lithium/versionsからダウンロードして解凍<br />
  • 21. 初期設定<br />フォルダ構成はCakePHPそっくり<br />若干違う箇所もあるが<br />URLがルートでない場合はCakePHP同様.htaccessでRewriteBaseを設定<br />app/resourcesをwritableにする<br />config/bootstrap.phpのconnections.phpをrequireしてるところのコメントアウトを解除<br />config/connections.phpを編集<br />DB設定<br />
  • 22. テーブル<br />create table posts (<br /> id integer unsigned not null auto_increment,<br /> title varchar(255),<br /> body text,<br /> primary key(id)<br />);<br />
  • 23. MVC作成<br />
  • 24. app/models/Post.php<br /><?php<br />namespace appmodels;<br />class Post extends lithiumdataModel {<br />}<br />
  • 25. app/controllers/PostsController.php<br /><?php<br />namespace appcontrollers;<br />class PostsController extends lithiumactionController {<br />}<br />
  • 26. app/views/posts/index.html.php<br />(普通のHTML)<br />
  • 27. MVC作成<br />controllerからviewに値を渡すには、controllerでkey=>valueの形式でreturnする<br />compactを使うのがおすすめ<br />
  • 28. MVC作成<br />viewの拡張子は.html.php<br />viewではshort_open_tagの設定に限らず、<?=$foo?>書式が使える<br />なんと自動でHTMLエスケープ機能付き<br />ちなみにエスケープされたくない場合は<?php echo $foo?><br />なぜかHelperは自動エスケープされない不思議<br />nl2brは普通にやるしかない(と思う)<br />
  • 29. CRUDを作ってみる<br />
  • 30. Model<br />Model周りはそこまで調べてないので省略<br />namespaceで使うモデルを定義<br />別にしなくても使えるけど定義したほうが楽<br />
  • 31. Helper<br />Helperは$thisから参照すること<br />$this->html->link(...)<br />
  • 32. まとめ<br />
  • 33. まとめ<br />lithiumは開発がもりもり進んでいるので、そのうち実用的になる<br />その日に向けて勉強しておくのはいいかも<br />今はまだ実用は厳しいかも(ドキュメントが少なすぎ)<br />lithiumが出てきたらPHP5.3が本番!という感じがする<br />他に使う理由があまり無い<br />追加機能は便利ではあるが…<br />
  • 34. おわり<br />

×