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

Contenu connexe

Tendances

CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークJun-ichi Sakamoto
 
CSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいCSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいgirigiribauer
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeKiwamu Okabe
 
フロントエンドから考えるサイト高速化
フロントエンドから考えるサイト高速化フロントエンドから考えるサイト高速化
フロントエンドから考えるサイト高速化LIFULL Co., Ltd.
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)masayoshi takahashi
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlHideaki Ohno
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 
Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう博文 斉藤
 
WordPressテーマ事始め
WordPressテーマ事始めWordPressテーマ事始め
WordPressテーマ事始めMasaya Kogawa
 

Tendances (15)

Webページで学ぶJavaScript2013 第8回
Webページで学ぶJavaScript2013 第8回Webページで学ぶJavaScript2013 第8回
Webページで学ぶJavaScript2013 第8回
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
CSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバいCSS の Flexible Box Layout がヤバい
CSS の Flexible Box Layout がヤバい
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
 
フロントエンドから考えるサイト高速化
フロントエンドから考えるサイト高速化フロントエンドから考えるサイト高速化
フロントエンドから考えるサイト高速化
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for Perl
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
E zuka-teck2019-7-11 LT
E zuka-teck2019-7-11 LTE zuka-teck2019-7-11 LT
E zuka-teck2019-7-11 LT
 
Fumiの思想
Fumiの思想Fumiの思想
Fumiの思想
 
Gulpで学ぶSassとPug
Gulpで学ぶSassとPugGulpで学ぶSassとPug
Gulpで学ぶSassとPug
 
Gorilla.vim#6
Gorilla.vim#6Gorilla.vim#6
Gorilla.vim#6
 
Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう
 
Webサーバ、HTML
Webサーバ、HTMLWebサーバ、HTML
Webサーバ、HTML
 
WordPressテーマ事始め
WordPressテーマ事始めWordPressテーマ事始め
WordPressテーマ事始め
 

En vedette

omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたKatsuhiro Miura
 
Composerを利用した FuelPHPのパッケージ管理方法
Composerを利用した FuelPHPのパッケージ管理方法Composerを利用した FuelPHPのパッケージ管理方法
Composerを利用した FuelPHPのパッケージ管理方法nasneg
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 Mika Kane
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントnoldor
 
CodeIgniterのライセンスについて
CodeIgniterのライセンスについてCodeIgniterのライセンスについて
CodeIgniterのライセンスについてTakako Miyagawa
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデートtomohiro kitaura
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリングTakako Miyagawa
 
2017 02-14 キュー実装に見る排他処理
2017 02-14 キュー実装に見る排他処理2017 02-14 キュー実装に見る排他処理
2017 02-14 キュー実装に見る排他処理Akishige TAKEKOSHI
 
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳Takako Miyagawa
 
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料Takako Miyagawa
 
CakePHP Console Application 拡張Tips
CakePHP Console Application 拡張TipsCakePHP Console Application 拡張Tips
CakePHP Console Application 拡張TipsKenichirou Oyama
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...Kousuke Ebihara
 
Codeigniter4の比較と検証
Codeigniter4の比較と検証Codeigniter4の比較と検証
Codeigniter4の比較と検証ME iBotch
 
8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会Yusuke Ando
 
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室Yusuke Ando
 

En vedette (20)

omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
Composerを利用した FuelPHPのパッケージ管理方法
Composerを利用した FuelPHPのパッケージ管理方法Composerを利用した FuelPHPのパッケージ管理方法
Composerを利用した FuelPHPのパッケージ管理方法
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
 
Code igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイントCode igniterを初めて使うときにはまった4つのポイント
Code igniterを初めて使うときにはまった4つのポイント
 
CodeIgniterのライセンスについて
CodeIgniterのライセンスについてCodeIgniterのライセンスについて
CodeIgniterのライセンスについて
 
Codeigniter3フレームアップデート
Codeigniter3フレームアップデートCodeigniter3フレームアップデート
Codeigniter3フレームアップデート
 
PHPUnitでリファクタリング
PHPUnitでリファクタリングPHPUnitでリファクタリング
PHPUnitでリファクタリング
 
2017 02-14 キュー実装に見る排他処理
2017 02-14 キュー実装に見る排他処理2017 02-14 キュー実装に見る排他処理
2017 02-14 キュー実装に見る排他処理
 
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
 
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
 
CakePHP Console Application 拡張Tips
CakePHP Console Application 拡張TipsCakePHP Console Application 拡張Tips
CakePHP Console Application 拡張Tips
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
 
Codeigniter4の比較と検証
Codeigniter4の比較と検証Codeigniter4の比較と検証
Codeigniter4の比較と検証
 
8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会8時間耐久CakePHP2 勉強会
8時間耐久CakePHP2 勉強会
 
8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室8時間耐久PHPUnitの教室
8時間耐久PHPUnitの教室
 
BEAR.Sunday $app
BEAR.Sunday $appBEAR.Sunday $app
BEAR.Sunday $app
 

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

ぺちぱな。 はじまり
ぺちぱな。 はじまりぺちぱな。 はじまり
ぺちぱな。 はじまりRyo Tajima
 
Osc2012 fall fuel_php
Osc2012 fall fuel_phpOsc2012 fall fuel_php
Osc2012 fall fuel_phpKenichi Mukai
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみようTakuya Ueda
 
Beenos creators' night#201305今井
Beenos creators' night#201305今井Beenos creators' night#201305今井
Beenos creators' night#201305今井Daisuke Imai
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4hirokiky
 
Play meetup 2 2015.07.05
Play meetup 2 2015.07.05Play meetup 2 2015.07.05
Play meetup 2 2015.07.05Junichi Okamura
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Yasutaka Kawamoto
 
Gcpug tokyo february 2016
Gcpug tokyo february 2016Gcpug tokyo february 2016
Gcpug tokyo february 2016Makoto Uehara
 
PhoneGapで作るハイブリッドアプリケーション
PhoneGapで作るハイブリッドアプリケーションPhoneGapで作るハイブリッドアプリケーション
PhoneGapで作るハイブリッドアプリケーションMasahiko Tachizono
 
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンドGo言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンドAtsushi Yasuda
 
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストールGitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストールKiyoshi SATOH
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3ichikaway
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。Tomohiko Himura
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみたKeiji Kamebuchi
 

Similaire à Fuel phpをcomposerに本気で対応させた時の話 (20)

ぺちぱな。 はじまり
ぺちぱな。 はじまりぺちぱな。 はじまり
ぺちぱな。 はじまり
 
Osc2012 fall fuel_php
Osc2012 fall fuel_phpOsc2012 fall fuel_php
Osc2012 fall fuel_php
 
Ospn fuel php
Ospn fuel phpOspn fuel php
Ospn fuel php
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
Beenos creators' night#201305今井
Beenos creators' night#201305今井Beenos creators' night#201305今井
Beenos creators' night#201305今井
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
 
Play meetup 2 2015.07.05
Play meetup 2 2015.07.05Play meetup 2 2015.07.05
Play meetup 2 2015.07.05
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
 
Seo対策勉強会
Seo対策勉強会Seo対策勉強会
Seo対策勉強会
 
Goはじめました
GoはじめましたGoはじめました
Goはじめました
 
Sacss sp5
Sacss sp5Sacss sp5
Sacss sp5
 
Gcpug tokyo february 2016
Gcpug tokyo february 2016Gcpug tokyo february 2016
Gcpug tokyo february 2016
 
PhoneGapで作るハイブリッドアプリケーション
PhoneGapで作るハイブリッドアプリケーションPhoneGapで作るハイブリッドアプリケーション
PhoneGapで作るハイブリッドアプリケーション
 
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンドGo言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
 
Gopenflow demo v1
Gopenflow demo v1Gopenflow demo v1
Gopenflow demo v1
 
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストールGitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストール
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3
 
Hakyllで遊んでみた。
Hakyllで遊んでみた。Hakyllで遊んでみた。
Hakyllで遊んでみた。
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみた
 

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