FuelPHP 1.8-devでのComposerによるサブリポジトリの管理
FuelPHP 1.xのすべてのサブリポジトリの1.8/developブランチ(今だと開発中の1.7.3)にcomposer.jsonが追加されました。これにより、Composerによるサブリポジトリのインストールでrepositoriesの指定にpackageではなくvcsが使えるようになりました。
FuelPHP 1.xのコンポーネント(fuel/coreなど)は、Composerのrepositoriesの指定にpackageを使っているため、
composer updateしても最新の1.8/developブランチの状態には更新されません。
という制限はvcsを使えば、今後はなくなります。
FuelPHP 1.8-devのインストール方法
開発版である1.8/developブランチは次のようにインストールできます。
まず、普通にoilコマンドで最新の安定版(現在1.7.2)をインストールします。
$ oil create ProjectName
ブランチを1.7/masterから1.8/developに変更します。
$ cd ProjectName
$ git checkout -- composer.phar
$ git checkout 1.8/develop
composer.jsonを変更します。リポジトリのタイプをvcsに変更し、バージョンをdev-1.8/developにします。
--- a/composer.json
+++ b/composer.json
@@ -5,136 +5,24 @@
"keywords": ["application", "website", "development", "framework", "PHP"],
"license": "MIT",
"repositories": [
- {
- "type": "package",
- "package": {
- "name": "fuel/auth",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/auth/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/auth.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- {
- "type": "package",
- "package": {
- "name": "fuel/email",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/email/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/email.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- {
- "type": "package",
- "package": {
- "name": "fuel/oil",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/oil/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/oil.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- {
- "type": "package",
- "package": {
- "name": "fuel/orm",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/orm/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/orm.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- {
- "type": "package",
- "package": {
- "name": "fuel/parser",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/parser/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/parser.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- "type": "package",
- "package": {
- "name": "fuel/core",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/core/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/core.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- },
- {
- "type": "package",
- "package": {
- "name": "fuel/docs",
- "type": "fuel-package",
- "version": "1.7.2",
- "dist": {
- "url": "https://github.com/fuel/docs/archive/1.7/master.zip",
- "type": "zip"
- },
- "source": {
- "url": "https://github.com/fuel/docs.git",
- "type": "git",
- "reference": "1.8/develop"
- }
- }
- }
+ { "type": "vcs", "url": "https://github.com/fuel/docs" },
+ { "type": "vcs", "url": "https://github.com/fuel/core" },
+ { "type": "vcs", "url": "https://github.com/fuel/auth" },
+ { "type": "vcs", "url": "https://github.com/fuel/email" },
+ { "type": "vcs", "url": "https://github.com/fuel/oil" },
+ { "type": "vcs", "url": "https://github.com/fuel/orm" },
+ { "type": "vcs", "url": "https://github.com/fuel/parser" }
],
"require": {
"php": ">=5.3.3",
"composer/installers": "~1.0",
- "fuel/docs": "1.7.2",
- "fuel/core": "1.7.2",
- "fuel/auth": "1.7.2",
- "fuel/email": "1.7.2",
- "fuel/oil": "1.7.2",
- "fuel/orm": "1.7.2",
- "fuel/parser": "1.7.2",
+ "fuel/docs": "dev-1.8/develop",
+ "fuel/core": "dev-1.8/develop",
+ "fuel/auth": "dev-1.8/develop",
+ "fuel/email": "dev-1.8/develop",
+ "fuel/oil": "dev-1.8/develop",
+ "fuel/orm": "dev-1.8/develop",
+ "fuel/parser": "dev-1.8/develop",
"fuelphp/upload": "2.0.2",
"monolog/monolog": "1.5.*",
"michelf/php-markdown": "1.4.0"
composer updateし依存パッケージを更新します。すべてのサブリポジトリを検索してパッケージ情報(composer.json)を探すため、初回は時間がかかります。
$ php composer.phar self-update
$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing fuel/docs (1.7.2)
- Installing fuel/docs (dev-1.8/develop df2fa8b)
Cloning df2fa8bd5cbc65fcf6790ef3bfc2ff64b99a815b
- Removing fuel/core (1.7.2)
- Installing fuel/core (dev-1.8/develop c8ab9e4)
Cloning c8ab9e400baec13e17b0e05231a7759b63bee0fd
- Removing fuel/auth (1.7.2)
- Installing fuel/auth (dev-1.8/develop dc37500)
Cloning dc37500465c03cbb099188b0a0a9c2f0c06a4b05
- Removing fuel/email (1.7.2)
- Installing fuel/email (dev-1.8/develop ba3066f)
Cloning ba3066f2e5fe131bf8db7e5768fd5b8b9d945bcc
- Removing fuel/oil (1.7.2)
- Installing fuel/oil (dev-1.8/develop 7ce5d42)
Cloning 7ce5d4208fbf3816cb4da5b4ff7edb895ae56d23
- Removing fuel/orm (1.7.2)
- Installing fuel/orm (dev-1.8/develop 4a0de02)
Cloning 4a0de020038f4512d1c6217c24dab081d542f998
- Removing fuel/parser (1.7.2)
- Installing fuel/parser (dev-1.8/develop 2ebc953)
Cloning 2ebc95388d02b54933eade00d7155feb72193f25
- Removing fuelphp/upload (2.0.1)
- Installing fuelphp/upload (2.0.2)
Loading from cache
Writing lock file
Generating autoload files
これで、サブリポジトリがすべて1.8/developになりました。
今後は、composer updateコマンドを実行すれば、最新の1.8/developになります。
なお、1.7/master以前にはcomposer.jsonが存在しないため、この状態のcomposer.jsonのversionを変更してもうまく動作しないことに注意してください。
この方法が使えるのは、1.8/developあるいは1.7.3がリリースされた後の1.7/masterということになります。
関連
Date: 2015/01/13



![徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応 徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応](http://tatsu-zine.com/images/books/164/cover_s.jpg)

