Your SlideShare is downloading. ×
FuelPHPをさわってみて
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

FuelPHPをさわってみて

40,160
views

Published on

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

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

Published in: Technology

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

No Downloads
Views
Total Views
40,160
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
19
Comments
0
Likes
43
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
  • \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
  • 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. ありがとうございました