fuel phpをcomposerに本気で対応させた時の話
DESCRIPTION
TRANSCRIPT
![Page 1: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/1.jpg)
FuelPHPを本気でcomposerに対応させた時の話
2013/10/12 FuelPHP&CodeIgniter ユーザの集い
細羽啓司
13年10月12日土曜日
![Page 2: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/2.jpg)
自己紹介• 細羽啓司 (ほそばけいし)
• 所属: 株式会社ガラパゴス
• http://www.glpgs.com
• Twitter: @hosopy
• Facebook: https://www.facebook.com/keishi.hosoba
• github: https://github.com/hosopy
• 開発: PHP, Android(Java), iOS(Objective-C), Node.js,
Ruby(RoR)...
13年10月12日土曜日
![Page 3: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/3.jpg)
Fuel歴• 約1.5年
• JobQueueのパッケージを作ってみたり
• https://github.com/hosopy/fuel-jobqueue
• 使う側メインだったので、今後は貢献する方にも力を入れたい
13年10月12日土曜日
![Page 4: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/4.jpg)
背景
13年10月12日土曜日
![Page 5: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/5.jpg)
スマートフォンのアプリ開発をしています
iOSアプリ
API
Androidアプリ
CMS
アプリ サーバサイド
13年10月12日土曜日
![Page 6: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/6.jpg)
サーバサイドの開発にFuelPHPを活用
iOSアプリ
API
Androidアプリ
CMS
アプリ サーバサイド
13年10月12日土曜日
![Page 7: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/7.jpg)
FuelPHPを採用した理由
iOSアプリ
API
Androidアプリ
CMS
アプリ サーバサイド・学習コストの低さ・シンプルな実装 - 最後に小回りがきく・module (HMVC)
13年10月12日土曜日
![Page 8: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/8.jpg)
よく使う処理をpackageやmoduleでライブラリ化
JobQueuepackage
APNSpackage
GCMpackage
InAppPurchasepackage
HMVC
Cmsmodule
Apimodule
Photomodule
Usermodule
Notificationmodule
13年10月12日土曜日
![Page 9: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/9.jpg)
FuelPHP1.6以前のライブラリ構成管理(社内)• 初期
• 依存性管理?何それおいしいの?
• 自作packageもmoduleもリポジトリ分けず、全コピ
• 途中から
• さすがに自作package, moduleはリポジトリを分け始める
• git submoduleで気合いで管理
• 混乱することもしばしば
13年10月12日土曜日
![Page 10: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/10.jpg)
1.6から対応
13年10月12日土曜日
![Page 11: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/11.jpg)
期待したもの
13年10月12日土曜日
![Page 12: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/12.jpg)
Railsでのbundler的なcoreパッケージも含めて管理されているイメージ
13年10月12日土曜日
![Page 13: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/13.jpg)
composerに構成管理を全任できる!
composer.jsonfuel/core
1.6.1fuel/auth
1.6.1
fuel系
サードパーティpackage
module
その他
hoge1.0
fuga1.2
notification1.4
cms1.2
fuel/uploaddev-master
社内ライブラリ
※社内13年10月12日土曜日
![Page 14: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/14.jpg)
現実
13年10月12日土曜日
![Page 15: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/15.jpg)
あれ?
13年10月12日土曜日
![Page 16: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/16.jpg)
git submoduleは健在!
13年10月12日土曜日
![Page 17: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/17.jpg)
composer.json
.gitmodule
むしろ面倒orz
fuel/core1.6.1
fuel/oil1.6.1
hoge1.0
fuga1.2
notification1.4
cms1.2
fuel/uploaddev-master
※社内fuel/auth
1.6.1
13年10月12日土曜日
![Page 18: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/18.jpg)
ちょっと本気で対応せねば
13年10月12日土曜日
![Page 19: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/19.jpg)
composer一本化への道
vendor package module fuel/core
Packagist A A A -
git(composer対応) B B B -
git(composer非対応) C C C D
→ 管理対象↓ ソース
13年10月12日土曜日
![Page 20: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/20.jpg)
タイプA・B
vendor package module fuel/core
Packagist A A A -
git(composer対応) B B B -
git(composer非対応) C C C D
→ 管理対象↓ ソース
13年10月12日土曜日
![Page 21: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/21.jpg)
A・Bは楽勝• Aは普通すぎるので省略
• Bも、リポジトリの定義を追加するのみ"require": { "hosopy/hoge": "dev-master"},"repositories": { { "type": "git", "url": "https://github.com/hosopy/hoge.git" }}
当然、社内のリポジトリでもOK
13年10月12日土曜日
![Page 22: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/22.jpg)
タイプC (fuel/ormなど)
vendor package module fuel/core
Packagist A A A -
git(composer対応) B B B -
git(composer非対応) C C C D
→ 管理対象↓ ソース
13年10月12日土曜日
![Page 23: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/23.jpg)
"require": { "canton7/fuelphp-casset": "1.21"},"repositories": { { "type": "package", "package": { "name": "canton7/fuelphp-casset", "type": "fuel-package", "version": "1.21", "require": { "composer/installers": "*" }, "source": { "url": "https://github.com/canton7/fuelphp-casset.git", "type": "git", "reference": "master" } } }}
対象packageのcomposer.jsonが持つべき情報を自分で定義
13年10月12日土曜日
![Page 24: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/24.jpg)
タイプD
vendor package module fuel/core
Packagist A A A -
git(composer対応) B B B -
git(composer非対応) C C C D
→ 管理対象↓ ソース
13年10月12日土曜日
![Page 25: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/25.jpg)
タイプD(fuel/core)は厄介
• composer/installers(※)に未定義
• vendor配下に入れられる。COREPATH
を変更しても良いが、気持ち悪い。。
• githubに”fuel-core”なるものが過去に提案された形跡もあったが。。。
※ https://github.com/composer/installers13年10月12日土曜日
![Page 26: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/26.jpg)
"require": { "fuel/core": "1.6.1"},"repositories": {{ "type": "package", "package": { "name": "fuel/core", "type": "fuel-package", "version": "1.6.1", "require": { "composer/installers": "*" }, "source": { "url": "https://github.com/fuel/core.git"", "type": "git", "reference": "1.6/master" }}}}"extra": { "installer-paths": { "fuel/core/": ["fuel/core"] }}
ポイントfuel/coreをvendorに入れず、fuel/coreに入れ
るように設定
13年10月12日土曜日
![Page 27: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/27.jpg)
祝
composer.jsonfuel/core
1.6.1fuel/auth
1.6.1
fuel系
サードパーティpackage
module
その他
hoge1.0
fuga1.2
notification1.4
cms1.2
fuel/uploaddev-master
社内ライブラリ
※社内13年10月12日土曜日
![Page 28: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/28.jpg)
まとめ
• fuel/core までcomposer管理にしてみた
• composerの勉強不足につき、もっと良い書き方があるかもしれない
13年10月12日土曜日
![Page 29: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/29.jpg)
一緒にFuelPHPで開発できる仲間を募集中!
Wantedly: https://www.wantedly.com/projects/3713
13年10月12日土曜日
![Page 30: Fuel phpをcomposerに本気で対応させた時の話](https://reader034.vdocuments.site/reader034/viewer/2022051109/54945cf9ac7959222e8b4b71/html5/thumbnails/30.jpg)
ご清聴ありがとうございました
13年10月12日土曜日