FuelPHP 1.7のComposerによるインストール

FuelPHP Advent Calendar 2013
FuelPHP Advent Calendar 2013参加有志
達人出版会
発行日: 2013-12-27
対応フォーマット: EPUB, PDF

『FuelPHP Advent Calendar 2013』の11日目に

  • FuelPHPをもっとComposerで使う

がありますが、fuel/fuelリポジトリ内の必要なファイルを個別にダウンロードして取得するというのが、どうもスマートでないので、私なりの方法を考えてみました。

(2014/07/14追記) FuelPHP 1.7.2から正式にComposerによるインストールが可能になりました。詳細は、FuelPHP 1.7.2のComposerによるインストールを参照してください。

オレオレインストール方法

GitHubからfuel/fuelリポジトリの必要なブランチを取ってきます。

$ git clone -b 1.7/master git://github.com/fuel/fuel.git ProjectName

.gitmodulesを削除します。

$ cd ProjectName
$ rm .gitmodules

composer.jsonを編集しサブモジュールだったものを追加します。必要なパッケージは、requireに追加してください。以下の例ではoilしか追加していません。

--- a/composer.json
+++ b/composer.json
@@ -18,7 +18,117 @@
     "require": {
         "php": ">=5.3.3",
         "monolog/monolog": "1.5.*",
-       "fuelphp/upload": "2.0.1"
+       "fuelphp/upload": "2.0.1",
+        "fuel/core": "1.7",
+        "fuel/oil": "1.7"
+    },
+    "repositories": [
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/core",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/core.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/auth",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/auth.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/email",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/email.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/oil",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/oil.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/orm",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/orm.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        },
+        {
+            "type": "package",
+            "package": {
+                "name": "fuel/parser",
+                "type": "fuel-package",
+                "version": "1.7",
+                "require": {
+                    "composer/installers": "*"
+                },
+                "source": {
+                    "url": "https://github.com/fuel/parser.git",
+                    "type": "git",
+                    "reference": "1.7/master"
+                }
+            }
+        }
+    ],
+    "extra": {
+        "installer-paths": {
+            "fuel/core": ["fuel/core"],
+            "fuel/packages/auth": ["fuel/auth"],
+            "fuel/packages/email": ["fuel/email"],
+            "fuel/packages/oil": ["fuel/oil"],
+            "fuel/packages/orm": ["fuel/orm"],
+            "fuel/packages/parser": ["fuel/parser"]
+        }
     },
     "suggest": {
         "mustache/mustache": "Allow Mustache templating with the Parser package",

Composerで必要なコンポーネントをインストールします。

$ php composer.phar install

これで完了です。

本家のfuel/fuelリポジトリの変更を今後もgitで取得したい場合は、このままこのリポジトリでアプリを開発していきます。

まあ、開発用のブランチくらい切る方がいいでしょうが。

$ git checkout -b develop

でdevelopブランチにcommitしていきます。

fuel/fuelの更新はほとんどないので手動でもいいという場合は、.gitフォルダを削除して、Gitリポジトリを初期化します。これなら、アプリに必要ないfuel/fuelの履歴は残らず、アプリの履歴のみがリポジトリに保存できます。

で、この状態のリポジトリを、プロジェクト最初の雛形としておけばいいのではないかと思いました。

(2014/05/28追記) 解説した手順のGitリポジトリをGitHubで公開しています。

参考

Date: 2014/01/29

Tags: fuelphp, composer