SlideShare a Scribd company logo
Submit Search
Upload
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Report
Mika Kane
Follow
•
11 likes
•
10,469 views
1
of
50
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
•
11 likes
•
10,469 views
Download Now
Download to read offline
Report
Business
関西FuelPHP 2014 6/28 補足: 指摘を頂いて#15 バリデーション連携のところ修正しました。ありがとうございます!!
Read more
Mika Kane
Follow
Recommended
はじめての FuelPHP
Sho A
11.9K views
•
40 slides
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
26.5K views
•
51 slides
最近、僕がハマったFuelPHPの紹介
Naoto Mawatari
62.5K views
•
115 slides
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
34.7K views
•
50 slides
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
15.5K views
•
79 slides
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
3.8K views
•
25 slides
More Related Content
What's hot
FuelPHPをさわってみて
Sotaro Omura
17.4K views
•
196 slides
NetBeansではじめる FuelPHP
Junichi Yamamoto
13.3K views
•
82 slides
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
9.4K views
•
44 slides
FuelPHPでのファイルアップロード
kenjis
9.1K views
•
42 slides
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
3K views
•
53 slides
10分でわかるFuelPHP @ OSC2013 Nagoya
kenjis
12.2K views
•
54 slides
What's hot
(20)
FuelPHPをさわってみて
Sotaro Omura
•
17.4K views
NetBeansではじめる FuelPHP
Junichi Yamamoto
•
13.3K views
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
•
9.4K views
FuelPHPでのファイルアップロード
kenjis
•
9.1K views
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
•
3K views
10分でわかるFuelPHP @ OSC2013 Nagoya
kenjis
•
12.2K views
Fuelphp1.8を始めたい
運営 sollastudio
•
882 views
Osc2014
Soudai Sone
•
2.7K views
Fuel php osc tokyo2012
Fumito Mizuno
•
3K views
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
•
3.9K views
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
•
10K views
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
•
4.4K views
Cakephp勉強会@tokyo #4
ichikaway
•
1.1K views
PHPの今とこれから2014
Rui Hirokawa
•
21.3K views
CodeIgniter入門
Sho A
•
13.1K views
Ansible入門...?
shirou wakayama
•
9.5K views
第21回Creators MeetUp
Kenichi Mukai
•
2.4K views
SPL fukuokaphp_1
ichikaway
•
1.3K views
PHP AST 徹底解説
do_aki
•
26.4K views
php-src の歩き方
do_aki
•
2.4K views
Viewers also liked
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
13K views
•
30 slides
Composerを利用した FuelPHPのパッケージ管理方法
nasneg
9.4K views
•
15 slides
CakePHP Console Application 拡張Tips
Kenichirou Oyama
3.4K views
•
17 slides
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
21.9K views
•
91 slides
8時間耐久CakePHP2 勉強会
Yusuke Ando
16.5K views
•
72 slides
8時間耐久PHPUnitの教室
Yusuke Ando
25K views
•
88 slides
Viewers also liked
(18)
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
•
13K views
Composerを利用した FuelPHPのパッケージ管理方法
nasneg
•
9.4K views
CakePHP Console Application 拡張Tips
Kenichirou Oyama
•
3.4K views
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
•
21.9K views
8時間耐久CakePHP2 勉強会
Yusuke Ando
•
16.5K views
8時間耐久PHPUnitの教室
Yusuke Ando
•
25K views
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
•
2.2K views
はじめてのSymfony2
Tomohiro MITSUMUNE
•
4.7K views
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
•
9.6K views
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru
•
9.1K views
Symfony2でMongoDBと仲良くする方法
Koji Iwazaki
•
4.7K views
תוכנית המהפכה בחינוך של נתניהו 2009
Eli Hurvitz
•
617 views
ブギーボードパンフレット
BoogieBoard_JP
•
873 views
Afstuderen eindverslag final
hanskanns
•
3.5K views
מחדד 05.03
Leo Burnett Israel
•
463 views
Predavanje OpenIT 2011 - Beograd
Ivan Rečević
•
708 views
Nebosh Oil and Gas opearational safety certificate (2)
Gulf Test Safety Consultancies
•
256 views
Unit 2: NUTRITION
alfonsodios
•
1.7K views
Similar to FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP活用事例
Yusuke Naka
3.3K views
•
42 slides
フレームワークを使うべき 3 つの理由
Kenichi Mukai
15.5K views
•
81 slides
PHPの今とこれから2007
Rui Hirokawa
320 views
•
35 slides
今すぐ使えるPHP開発のあれこれ
Yuya Kikukawa
418 views
•
88 slides
PHPの今とこれから2015
Rui Hirokawa
30.3K views
•
26 slides
PHP & Queue
sasezaki
5.7K views
•
28 slides
Similar to FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
(20)
FuelPHP活用事例
Yusuke Naka
•
3.3K views
フレームワークを使うべき 3 つの理由
Kenichi Mukai
•
15.5K views
PHPの今とこれから2007
Rui Hirokawa
•
320 views
今すぐ使えるPHP開発のあれこれ
Yuya Kikukawa
•
418 views
PHPの今とこれから2015
Rui Hirokawa
•
30.3K views
PHP & Queue
sasezaki
•
5.7K views
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
晃 遠山
•
19.3K views
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
•
409 views
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
•
4.2K views
AspectMock 最強のモッキングフレームワーク
kenjis
•
4.4K views
NanoA
Kazuho Oku
•
17.1K views
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
•
2.9K views
スクリプト言語PHP攻略法
Rui Hirokawa
•
5.4K views
PHPの今とこれから2016
Rui Hirokawa
•
13.9K views
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
•
3.2K views
2009 PHP初心者
Hideo Kashioka
•
1.3K views
5分でわかるphalcon php
Yusaku Kinoshita
•
4K views
5分でわかるPhalconPHP
Shohei Tai
•
1.8K views
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
•
9.8K views
PHPの今とこれから2017
Rui Hirokawa
•
257 views
Recently uploaded
ビジュアルノベル発展に向けて
Keiichi Tabata
168 views
•
12 slides
清田軌道工業会社紹介資料230728.pdf
ymoteki
10 views
•
62 slides
fmx_credential.pdf
kiryutakumi
35 views
•
5 slides
スクラムコーチの問題発見
MieNishizono1
10 views
•
26 slides
p02_info 2.pdf
ssuser615e86
11 views
•
10 slides
231027fy2023_2q
bm_pr
121 views
•
33 slides
Recently uploaded
(17)
ビジュアルノベル発展に向けて
Keiichi Tabata
•
168 views
清田軌道工業会社紹介資料230728.pdf
ymoteki
•
10 views
fmx_credential.pdf
kiryutakumi
•
35 views
スクラムコーチの問題発見
MieNishizono1
•
10 views
p02_info 2.pdf
ssuser615e86
•
11 views
231027fy2023_2q
bm_pr
•
121 views
1ページでわかるTAPP.pdf
ssuser615e86
•
22 views
ハラスメント防止のためのコミュニケーションスキル
UnitedHealthCommunic
•
18 views
他社会計ソフトからの仕訳インポート(TKC)
Money Forward, Inc.
•
10 views
p02_info 2.pdf
ssuser615e86
•
19 views
他社会計ソフトからの仕訳インポート(TKC)
Money Forward, Inc.
•
7 views
柔軟なカスタマイズとセキュリティ万全なWebフォーム作成ならSPIRAL(R) form
SPIRAL Inc.
•
19 views
Service.pdf
Yasuyoshi Minehisa
•
23 views
slide.pdf
ssuser7664a8
•
82 views
他社会計ソフトからの仕訳インポート(TKC)
Money Forward, Inc.
•
5 views
シナスタジア_企業紹介.pdf
takashikawamoto9
•
39 views
【会社紹介資料】イー・フォース株式会社_2023_11.pdf
eForce
•
21 views
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
1.
フレームワーク4本勝負 #FuelPHP @mkkn_info
2.
about me みかかね TW @mkkn_info PHPer
@ Osaka マネキンと二人暮らし
4.
about me みかかね TW @mkkn_info PHPer
@ Osaka マネキンと二人暮らし
5.
Fuel = “燃料”
6.
CodeIgniter FuelPHP
7.
FuelPHP CodeIgniterの流れを組みながら、上手いこといい感じにし たフレームワーク。 PHP 5.3以上対応 :
July 31st, 2011 release 名前空間を用いたオートロードシステム クロージャのサポート 静的遅延束縛のサポートによる静的クラスの多用 脱レガシー。新しいPHPの書き方 最新バージョンは1.7。必要な機能はひと通り整ってきた かなぁ?という印象
8.
Fuel = “PHP
Framework”
9.
FuelPHP http://fuelphp.com/
10.
Controller 基本的なcontroller/action/param のURL構成 actionメソド内でreturnした文字列を出力 基本的な二階層レイアウトシステムをサポートする Controller_Template 配列をセットするだけで、柔軟にxmやjsonなどの応答を生 成してくれるController_Rest
11.
Routing Routeファイルでルートを記述できる。 Controllerに縛られない自由なルーティング <?php //@config/routes.php return [ “hello
=> function() { return “hello world”; }, “blog/(:any)” => ”blog/entry/$1”, “:user/:package/profile“ => “api/profile”, ]; Controllerルーティングへのエイ リアス。 正規表現、後方参照も使える ルートURLから名前付きパラ メータを生成できる。
12.
View 基本のパーサはテンプレートを読み込んで変数を割り当 てるだけのシンプルなもの 変数割り当て時の自動エスケープ デフォルトのPHPパーサでも十分使えるレベルに オプションで様々なタイプのパーサに対応 twigやらsmartyやら URL生成クラス、Asset管理クラス、HTMLクラス、Fieldset クラスなどサポートも充実
13.
Database クエリビルダを扱うDBクラス 単一テーブルベースのCRUD処理を扱うModel_Crud リレーションを扱えるORMパッケージ DBやテーブルの生成などを扱うDBUtilクラス マイグレーションも一応ある
14.
Database 名前付きパラメータが使えたり、結果の型が指定できた り。 <?php $sql = <<<SQL SELECT
* FROM users WHERE name = :name SQL; $query = DB::query($sql)->bind("name",$name); $query = $query->as_object('Model_Users'); $res = $query->execute(); 名前付きパラメータ もう大量の ? の個数数えたりし なくていい。 変数を参照で割り当てられる。 結果の型は、連想配列、オブ ジェクトから選択できる。
15.
Database お手軽なエンティティ作成にはModel_Crud class Users extends
Model_Crud { static protected $_table_name = "users"; } $user = Users::find_by_pk(); $user = Users::find_one_by_name(“mikakane”); $user->email = “mikakane2@gmail.jp”; if(!$user->save()) { $validation = $user->validation(); $msg = $validation->show_errors(); 規約どおりならテーブル名のみ の設定でOK PK検索や列検索、には専用のメ ソドが用意される。 WHERE … IN やLIMIT,ORDER BY といった複雑な検索も対応 saveでUPDATE/INSERTされる。 バリデーション連携も
16.
CLI Scaffolding機能 CLI実行用のTask ファイルを設置するだけでCLI実行ファイルが作成可能 CLI実行処理をサポートするCLIクラス モデルクラスをHTTPとCLIで共用可能。 ちょっとしたモデルのテストにも便利 PHPUnitのテストランナー
17.
今回話したいこと
18.
Why FuelPHP?
19.
FuelPHP http://fuelphp.com/
20.
Simple Flexsible Community Driven
21.
Fuel = “flexible”
22.
規約より設定 アンチ「設定より規約」 フレームワークが規約やお作法を強制 しない。 フレームワークに縛られない自由な開発スタイル ロジックや、インフラ側がフレームワークに合わせる必要はな い。 必要に応じて必要な分だけの機能を使えばいい 必要に応じて必要な分だけ学べばいい 学習コスト低め。 独自のオートロードシステムで、ほとんどのコア機能は書き換 え可能
23.
独自Autoloader Composer オートローダ Composerのオートローダ FuelPHP オートローダ ファイルパス=完全修飾クラス名の基本的な構造 クラスマップ+コア名前空間 特殊なエイリアス領域 フレームワーク独自のAutoloaderを採用
24.
独自Autoloader クラスエイリアスによる間接的なクラス参照 何をViewクラスとして扱うかをオートローダが制御する。 コアの機能だけでなく、独自定義クラスでもOK Viewクラス FuelCoreViewクラス コアのクラスは全て FuelCore名前空間に 定義されている。
25.
独自Autoloader クラスエイリアスによる間接的なクラス参照 何をViewクラスとして扱うかをオートローダが制御する。 コアの機能だけでなく、独自定義クラスでもOK Viewクラス FuelCoreViewクラス Viewクラスの参照を 切り替えれる。 Viewクラス エイリアス
26.
独自Autoloader クラスエイリアスによる間接的なクラス参照 何をViewクラスとして扱うかをオートローダが制御する。 コアの機能だけでなく、独自定義クラスでもOK Viewクラス FuelCoreViewクラス 切り替え後でもコアの Viewクラスは完全修飾 名で参照可能。 Viewクラス 継承 エイリアス
27.
独自Autoloader Viewクラスをカスタマイズする例 # app/classes/view.php class View
extends FuelCoreView { protected function process_file($file_override=false) { $data = parent::process_file($file_override); return mb_convert_encoding($data,”UTF8”); } } # app/bootstrap.php Autoloader::add_classes([ "View" => APPPATH."classes/view.php", ]); コアのクラスはFuelCore名前 空間に定義されている。 必要な部分だけを拡張して記述 できる。 クラスマップに登録したら 使用準備完了
28.
独自Autoloader 自作クラスも同様に ProjectnameHogeのような形式で定 義しながら、Hogeクラスとして参照可能。 もちろん後からHogeクラスを作成して拡張可能 気に入らないコア/プラグインの機能はガンガン書き換え られる。 heroku向けにLogクラスを書き換え 独自パーサ機能の実装のためにViewクラスを書き換え 独自Validation機能の実装のためにValidationクラスを書き換え テストの時だけModelの機能を変更
29.
Fuel = “simple”
30.
Readable PHP5.3以上。互換性のための面倒なコードが存在しない。 機能入れ替え系の機能はオートローダ任せ。複雑なDIコ ンテナのコールは存在しない。 継続的開発の中でもSimpleさを持続する仕組み アプリケーションのモジュール分割
31.
分離 / 再利用の仕組み 継続開発におけるコードの依存関係管理は重大な問題 MVCのまとまりを一つのディレクトリ以下にまとめて、 分離したり共有したりできる。 Module
分割の仕組み。アプリケー ションを機能毎に分割。 特定のURLアクセス時に自 動的に読み込まれる Package 共有の仕組み。アプリケー ション全体に再利用可能な コードを適用 明示的な参照命令を記述し て読み込み
32.
分離 / 再利用の仕組み URLをベースに自動的に読み込まれるModule URLと紐づく依存構成で、アプリケーションの分離層を支 える。 MODULE
MODULE MODULE APPLICATION PACKAGES CORE 上から下への参照 は比較的自由 下から上への参照 は制約あり
33.
分離 / 再利用の仕組み PHPファイル、設定ファイル、言語ファイル、 CLIタスクファイルをそれぞれのレイヤーで 機能毎にまとめて配置可能。 MODULE
MODULE MODULE APPLICATION PACKAGES CORE MVC+α MVC+α MVC+α
34.
分離 / 再利用の仕組み リクエストに応じたモジュールの自動読み込み Blog APPLICATION PACKAGES CORE http://example.com/blog
35.
分離 / 再利用の仕組み リクエストに応じたモジュールの自動読み込み User APPLICATION PACKAGES CORE http://example.com/user
36.
分離 / 再利用の仕組み リクエストに応じたモジュールの自動読み込み Info APPLICATION PACKAGES CORE http://example.com/info
37.
分離/再利用の仕組み 柔軟なオートローダ クラス参照のスコープがリクエストURLに応じて 「動的に」切り替わる。 カスケードファイルシステム ファイル参照が複数箇所から階層的に行われる。 テンプレート、設定ファイル HMVCアーキテクチャ MVCのそれぞれを独立した要素として再利用可能。
38.
分離 / 再利用の仕組み 複数アプリケーション間で共有可能なパッケージ アプリケーション起動にフックするbootstrapファイルを含 むことが可能でCoreの機能まで上書き可能。 MODULE
MODULE MODULE APPLICATION PACKAGES CORE MODULE MODULE MODULE APPLICATION 独自FW層
39.
クラスはClassesディレクトリに、 テンプレートはViewsディレクト リに。 classesディレクトリや viewsディレクトリに機能毎のディレ クトリが出来上がっていく。
40.
Moduleディレクトリに機能毎の ディレクトリを切って、その中 にクラスファイルやテンプレー トをまとめる。 一つの機能の実装/改修を進めるの に、必要なファイルが全て一つの場 所にまとまっている!!
41.
Fuel = “Community
Driven”
42.
コミュニティ駆動 コミュニティ駆動のオープンソースフレームワーク(MIT ライセンス)。 日本人のユーザコミュニティ https://groups.google.com/forum/#!forum/fuelphp_jp ドキュメントの翻訳活動も活発 ドキュメントはgithubで公開されており、定期的に翻訳 ウィークが開催されています。
43.
日本語ドキュメント http://fuelphp.jp
44.
FuelPHP まとめWiki http://wiki.fuelphp1st.com/wiki/
45.
FuelPHP日本語ニュース https://www.facebook.com/jp.fuel
46.
Meet-up in 2013 2013/12/07
[東京] FuelPHP & CodeIgniter ユーザの集い #2 2013/10/26 FuelPHP 勉強会 東海 vol.5 2013/10/12 [東京] FuelPHP & CodeIgniter ユーザの集い #1 2013/09/14 fuelphp コーディングしながらの勉強会 2013/07/30 FuelPHP 勉強会 大阪 vol.4 2013/07/20 [名古屋] FuelPHP入門ハンズオン vol.2 2013/06/30 FuelPHP 勉強会 東京 vol.4 2013/06/22 OSC2013 Nagoya 「FuelPHP BoF」 2013/05/11 FuelPHP 勉強会 東海 vol.4 2013/04/13 [名古屋] FuelPHP入門ハンズオン vol.1 2013/03/23 FuelPHP 勉強会 東京 vol.3 2013/02/17 FuelPHP 勉強会 大須 vol.3 2013/01/19 Nagoya.php 新年会 2013 FuelPHP WikiよりFuelPHPメインっぽいイベントを抜 粋
47.
電子書籍の紹介 はじめてのフレームワークとしての FuelPHP第2版(2) 環境構築編 / 入門編
/ 実践編 達人出版会より プレゼントキャンペーン実施中 詳しくは http://fuelphp1st.com/present/2nd
48.
Fuel = “Growing”
49.
Fuel2.0 2.0プロジェクトが1.x系の更新と平行して進行中 PHP5.4 + Composerベース コア機能の分割 諸コンポーネントの刷新
50.
ご清聴 ありがとうございました。
Editor's Notes
まず、FuelとはPHP Framework
Eloquentには及ばないなりにもそれなりに使える。
バリーデーションとの連携 各種フック
まず、FuelとはPHP Framework
まず、FuelとはPHP Framework
まず、FuelとはPHP Framework
基本的なフレームワークは二層or三層