Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fuel phpをcomposerに本気で対応させた時の話

12,056 views

Published on

  • Be the first to comment

Fuel phpをcomposerに本気で対応させた時の話

  1. 1. FuelPHPを本気でcomposerに 対応させた時の話 2013/10/12 FuelPHP&CodeIgniter ユーザの集い 細羽啓司 13年10月12日土曜日
  2. 2. 自己紹介 • 細羽啓司 (ほそばけいし) • 所属: 株式会社ガラパゴス • 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日土曜日
  3. 3. Fuel歴 • 約1.5年 • JobQueueのパッケージを作ってみたり • https://github.com/hosopy/fuel-jobqueue • 使う側メインだったので、今後は貢献 する方にも力を入れたい 13年10月12日土曜日
  4. 4. 背景 13年10月12日土曜日
  5. 5. スマートフォンの アプリ開発をしています iOS アプリ API Android アプリ CMS アプリ サーバサイド 13年10月12日土曜日
  6. 6. サーバサイドの開発に FuelPHPを活用 iOS アプリ API Android アプリ CMS アプリ サーバサイド 13年10月12日土曜日
  7. 7. FuelPHPを採用した理由 iOS アプリ API Android アプリ CMS アプリ サーバサイド ・学習コストの低さ ・シンプルな実装  - 最後に小回りがきく ・module (HMVC) 13年10月12日土曜日
  8. 8. よく使う処理をpackageや moduleでライブラリ化 JobQueue package APNS package GCM package InAppPurchase package HMVC Cms module Api module Photo module User module Notification module 13年10月12日土曜日
  9. 9. FuelPHP1.6以前の ライブラリ構成管理(社内) • 初期 • 依存性管理?何それおいしいの? • 自作packageもmoduleもリポジトリ分けず、全コピ • 途中から • さすがに自作package, moduleはリポジトリを分け始める • git submoduleで気合いで管理 • 混乱することもしばしば 13年10月12日土曜日
  10. 10. 1.6から対応 13年10月12日土曜日
  11. 11. 期待したもの 13年10月12日土曜日
  12. 12. Railsでのbundler的な coreパッケージも含めて 管理されているイメージ 13年10月12日土曜日
  13. 13. composerに構成管理を 全任できる! composer.json fuel/core 1.6.1 fuel/auth 1.6.1 fuel系 サードパーティ package module その他 hoge 1.0 fuga 1.2 notification 1.4 cms 1.2 fuel/upload dev-master 社内ライブラリ ※社内 13年10月12日土曜日
  14. 14. 現実 13年10月12日土曜日
  15. 15. あれ? 13年10月12日土曜日
  16. 16. git submoduleは健在! 13年10月12日土曜日
  17. 17. composer.json .gitmodule むしろ面倒orz fuel/core 1.6.1 fuel/oil 1.6.1 hoge 1.0 fuga 1.2 notification 1.4 cms 1.2 fuel/upload dev-master ※社内 fuel/auth 1.6.1 13年10月12日土曜日
  18. 18. ちょっと本気で対応せねば 13年10月12日土曜日
  19. 19. composer一本化への道 vendor package module fuel/core Packagist A A A - git (composer対応) B B B - git (composer非対応) C C C D → 管理対象↓ ソース 13年10月12日土曜日
  20. 20. タイプ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日土曜日
  21. 21. A・Bは楽勝 • Aは普通すぎるので省略 • Bも、リポジトリの定義を追加するのみ "require": { "hosopy/hoge": "dev-master" }, "repositories": { { "type": "git", "url": "https://github.com/hosopy/hoge.git" } } 当然、社内のリポジト リでもOK 13年10月12日土曜日
  22. 22. タイプ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日土曜日
  23. 23. "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日土曜日
  24. 24. タイプD vendor package module fuel/core Packagist A A A - git (composer対応) B B B - git (composer非対応) C C C D → 管理対象↓ ソース 13年10月12日土曜日
  25. 25. タイプD(fuel/core)は厄介 • composer/installers(※)に未定義 • vendor配下に入れられる。COREPATH を変更しても良いが、気持ち悪い。。 • githubに”fuel-core”なるものが過去に提 案された形跡もあったが。。。 ※ https://github.com/composer/installers 13年10月12日土曜日
  26. 26. "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日土曜日
  27. 27. 祝 composer.json fuel/core 1.6.1 fuel/auth 1.6.1 fuel系 サードパーティ package module その他 hoge 1.0 fuga 1.2 notification 1.4 cms 1.2 fuel/upload dev-master 社内ライブラリ ※社内 13年10月12日土曜日
  28. 28. まとめ • fuel/core までcomposer管理にしてみた • composerの勉強不足につき、もっと良 い書き方があるかもしれない 13年10月12日土曜日
  29. 29. 一緒にFuelPHPで開発できる 仲間を募集中! Wantedly: https://www.wantedly.com/projects/3713 13年10月12日土曜日
  30. 30. ご清聴ありがとうございました 13年10月12日土曜日

×