• Save
FuelPHPをさわってみて
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

FuelPHPをさわってみて

on

  • 40,627 views

「PHPカンファレンス関西2012」発表資料

「PHPカンファレンス関西2012」発表資料

Statistics

Views

Total Views
40,627
Views on SlideShare
20,930
Embed Views
19,697

Actions

Likes
43
Downloads
19
Comments
0

36 Embeds 19,697

http://d.hatena.ne.jp 11677
http://blog.omoon.org 4801
http://conference.kphpug.jp 1318
http://masutaka.net 1124
http://omoon.tap.vmware 247
http://localhost 155
http://docs.is0.me 70
https://twitter.com 62
http://ss.dotbranch.com 51
http://webcache.googleusercontent.com 39
http://s.deeeki.com 23
http://default-environment-hpu36vfez8.elasticbeanstalk.com 22
https://si0.twimg.com 19
http://asklife.info 17
https://twimg0-a.akamaihd.net 12
http://tweetedtimes.com 9
http://www.techgig.com 9
http://us-w1.rockmelt.com 6
http://sc.dotbranch.com 5
http://192.168.2.130 4
http://10.211.55.6 4
http://192.168.109.129 2
http://192.168.245.164 2
http://translate.googleusercontent.com 2
https://www.google.co.jp 2
http://a0.twimg.com 2
http://www.ezo-style.com 2
http://omoon-blog.pagodabox.com 2
http://nuevospowerpoints.blogspot.com.es 2
http://sandbox.is0.me 1
http://115.112.206.131 1
http://cc.bingj.com 1
http://nuevospowerpoints.blogspot.com.ar 1
http://www.tumblr.com 1
http://clipboard.com 1
http://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

FuelPHPをさわってみて Presentation Transcript

  • 1. PHPカンファレンス関西2012FuelPHPをさわってみて大村創太郎2012/5/12
  • 2. 自己紹介
  • 3. •大村創太郎
  • 4. •大村創太郎•大阪府池田市出身・在住
  • 5. •大村創太郎•大阪府池田市出身・在住•株式会社タップ
  • 6. •大村創太郎•大阪府池田市出身・在住•株式会社タップ•PHPは10年ぐらい
  • 7. •omoon
  • 8. •omoon
  • 9. •今日のスタッフです
  • 10. ただの利用者です
  • 11. ここ数ヶ月合間をみてちょこちょこ
  • 12. 個人的に1つ
  • 13. 業務で2つ
  • 14. とても楽しい
  • 15. 今日はそういうはなしをします
  • 16. 僕のフレームワーク遍歴
  • 17. Symfony 1.x
  • 18. myopenarchive.org
  • 19. 主にデザイン担当
  • 20. cakePHP 1.x
  • 21. 社内のお遊びアプリ
  • 22. 挫折したため画像なし
  • 23. 業務では
  • 24. 社内独自フレームワーク
  • 25. オレオレフレームワーク
  • 26. ぼくがかんがえたさいきょうの ふれーむわーく
  • 27. 作った時は最高だと思う
  • 28. 作っているうちに最低だと思う
  • 29. 2回作り直し
  • 30. 最新版を作る時にSymfony2を参考にした
  • 31. 完全に乗り換えるのは難しかった
  • 32. 先月Symfony2勉強会を開催
  • 33. ちなみに
  • 34. 今日の参加者アンケートはその成果です
  • 35. ご協力よろしくお願いします
  • 36. その準備をしていた2月頃
  • 37. FuelPHPに出会ってしまった
  • 38. 今日するはなし
  • 39. •FuelPHPの素敵な雰囲気
  • 40. •FuelPHPの素敵な雰囲気•インストールからサイト表示まで
  • 41. •FuelPHPの素敵な雰囲気•インストールからサイト表示まで•ちょっとだけソースのはなし
  • 42. 今日しないはなし
  • 43. たくさんあります
  • 44. 近くFuelPHPの入門書が出版されるようです
  • 45. http://d.hatena.ne.jp/Kenji_s/20120425/fuelphp_book_reviewer
  • 46. http://fuelphp-book.phpfogapp.com/notifyme
  • 47. 詳しくはそちらで
  • 48. What is ?
  • 49. FuelPHP is a simple,flexible, community drivenPHP 5.3 web frameworkbased on the best ideas ofother frameworks with afresh start.
  • 50. サイトはなんかおしゃれなのに
  • 51. 出てくる単語がいちいちガテン系
  • 52. fuel
  • 53. fuel = 燃料
  • 54. fuel = 燃料
  • 55. fuel = 燃料
  • 56. oil
  • 57. oil = 油
  • 58. oil = 油
  • 59. oil = 油
  • 60. forge
  • 61. View::forge();Response::forge();
  • 62. forge = 鍛造する
  • 63. forge = 鍛造(たんぞう)する
  • 64. forge = 〈鉄などを〉鍛えて(金属製品に)する
  • 65. forge = 鍛造する
  • 66. forge = 鍛造する
  • 67. forge = 鍛造する
  • 68. ガテン系、でも、なんか洒落てる
  • 69. そんな雰囲気
  • 70. さて、出会いのはなし
  • 71. 衝撃の Quick Installation
  • 72. たったの3行
  • 73. $ curl get.fuelphp.com/oil | sh$ cd Sites/$ oil create blog
  • 74. やってみます(demo)
  • 75. get.fuelphp.com/oilのなかみ
  • 76. #!/bin/bashPREFIX="/usr/bin/"install_oil() { sudo sh -c "curl --silent http://get.fuelphp.com/installer.sh > ${PREFIX}oil" sudo chmod +x ${PREFIX}oil}## Handle execution#main() { # Start installation install_oil exit 0}main
  • 77. get.fuelphp.com/installer.shのなかみ
  • 78. #!/bin/bashif [ -f "./oil" ]; then php oil "$@"else if [ "$1" == "create" ]; then if [ ! `which git` ]; then echo "For this installer to work youll needto install Git." echo http://git-scm.com/ fi git clone --recursive git://github.com/fuel/fuel.git "./$2" php "./$2/oil" refine install else echo This is not a valid Fuel installation so Oilis a bit lost. echo http://fuelphp.com/docs/installation/instructions.html fifi
  • 79. https://github.com/fuel/fuel
  • 80. https://github.com/fuel/fuel
  • 81. そこから git clone
  • 82. で、oil create blog
  • 83. かっこえー
  • 84. ここまでをまとめます
  • 85. なんか今風
  • 86. github
  • 87. twitter bootstrap
  • 88. twitter bootstrap
  • 89. なんか気持ちいい
  • 90. モチベーション維持には非常に重要
  • 91. では、中味をそろそろ
  • 92. ドキュメント
  • 93. ドキュメントついてくる!
  • 94. ドキュメントみてみましょう
  • 95. FuelPHPのcore
  • 96. 公開部分
  • 97. 僕達が書くとこ
  • 98. MVC
  • 99. M
  • 100. V
  • 101. C
  • 102. ここはVじゃない!
  • 103. ViewModel今日は話しません
  • 104. 実は Model のはなしもしません
  • 105. Controller
  • 106. ここに配置
  • 107. class Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 108. Controllerのルール
  • 109. • prefixed with "Controller_"
  • 110. • prefixed with "Controller_"• should extend the Controller class
  • 111. • prefixed with "Controller_"• should extend the Controller class• action_
  • 112. • prefixed with "Controller_"• should extend the Controller class• action_• A controller action MUST return a Response object.
  • 113. prefixed with "Controller_"class Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 114. should extend the Controller classclass Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 115. action_class Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 116. A controller action MUST return a Response object.class Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 117. URLとの関係
  • 118. http://localhost/blog/public/welcome/index
  • 119. http://localhost/blog/public/welcome/indexclass Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); }}
  • 120. http://localhost/blog/public/welcome/helloclass Controller_Welcome extends Controller{ public function action_index() { return Response::forge(View::forge(welcome/index)); } public function action_hello() { return Response::forge( View::forge( welcome/hello, array(name => $this->param(name, World)) ) ); }}
  • 121. http://localhost/blog/public/
  • 122. Routing
  • 123. ここに配置
  • 124. <?phpreturn array( _root_ => welcome/index, // The default route _404_ => welcome/404, // The main 404 route hello(/:name)? => array(welcome/hello),);
  • 125. <?phpreturn array( _root_ => welcome/index, // The default route _404_ => welcome/404, // The main 404 route hello(/:name)? => array(welcome/hello),);
  • 126. http://localhost/blog/public/
  • 127. http://localhost/blog/public/hello/php
  • 128. http://localhost/blog/public/hello/php
  • 129. <?phpreturn array( _root_ => welcome/index, // The default route _404_ => welcome/404, // The main 404 route hello(/:name)? => array(welcome/hello),);
  • 130. http://localhost/blog/public/hello/phpclass Controller_Welcome extends Controller{ public function action_hello() { return Response::forge( View::forge( welcome/hello, array(name => $this->param(name, World)) ) ); }}
  • 131. $this->param( hoge , default )
  • 132. $this->param( hoge , default )
  • 133. http://localhost/blog/public/hello
  • 134. http://localhost/blog/public/hello/phpclass Controller_Welcome extends Controller{ public function action_hello() { return Response::forge( View::forge( welcome/hello, array(name => $this->param(name, World)) ) ); }}
  • 135. View
  • 136. ここに配置
  • 137. ここはVじゃない!
  • 138. ここに配置
  • 139. デフォルトではviewファイルは生のPHP
  • 140. 配置場所によって名前がきまる
  • 141. 例えばこいつ
  • 142. welcome/indexと呼びます
  • 143. で、さきほどの
  • 144. http://localhost/blog/public/hello/php
  • 145. http://localhost/blog/public/hello/php<body> <div id="header"> <div class="row"> <div id="logo"></div> </div> </div> <div class="container"> <div class="row"> <div class="span16"> <h1>Hello, <?php echo $name; ?>! <
  • 146. http://localhost/blog/public/hello/phpclass Controller_Welcome extends Controller{ public function action_hello() { return Response::forge( View::forge( welcome/hello, array(name => $this->param(name, World)) ) ); }}
  • 147. http://localhost/blog/public/hello/php<body> <div id="header"> <div class="row"> <div id="logo"></div> </div> </div> <div class="container"> <div class="row"> <div class="span16"> <h1>Hello, <?php echo $name; ?>! <
  • 148. 値の渡し方
  • 149. 値の渡し方その1$data = array(title => hoge, contents => fuga);return Response::forge(View::forge(welcome/index, $data));
  • 150. 値の渡し方その2$view = View::forge(welcome/index);$view->title = hoge;$view->contents = fuga;return Response::forge($view);
  • 151. 値の渡し方その3$view = View::forge(home/index);$view->set(title, hoge);$view->set(contents, fuga);return Response::forge($view);
  • 152. ページ表示のしくみでした
  • 153. Controller 以外の Controller
  • 154. •Controller
  • 155. •Controller•Controller_Template
  • 156. •Controller•Controller_Template•Controller_Rest
  • 157. •Controller•Controller_Template•Controller_Rest•Controller_Hybrid
  • 158. •Controller•Controller_Template•Controller_Rest•Controller_Hybrid
  • 159. メソッドのprefixでリクエストメソッドを指定
  • 160. http://localhost/test/listにgetclass Controller_Test extends Controller_Rest{ public function get_list() { $this->response(array( foo => Input::get(foo), baz => array( 1, 50, 219 ), empty => null )); }}
  • 161. URL で format を指定
  • 162. test/list.json?foo=php{"foo":"php","baz":[1,50,219],"empty":null}
  • 163. test/list.xml?foo=php<xml><foo>php</foo><baz><item>1</item><item>50</item><item>219</item></baz><empty/></xml>
  • 164. API作成がサクッとできて嬉しい
  • 165. ほかにもいくつか
  • 166. • xml ‒ almost any programming language can read XML• json ‒ useful for JavaScript and increasingly PHP apps.• csv ‒ open with spreadsheet programs• html ‒ a simple HTML table• php ‒ Representation of PHP code that can be eval() ed• serialize ‒ Serialized data that can be unserialized in PHP
  • 167. ざっとこんな感じです
  • 168. その他にもたくさん
  • 169. 柔軟なConfiguration
  • 170. Environment のはなし
  • 171. $ oil test --group=Appみたいなはなし
  • 172. DB / Model / Form /Validation / Fieldset /Auth /Session / Parser
  • 173. ドキュメント
  • 174. ドキュメント翻訳メンバーも募集中のようです
  • 175. ということで、みなさんも
  • 176. fuel = 燃料
  • 177. oil = 油
  • 178. forge = 鍛造する
  • 179. ありがとうございました