ComposerのインストールとGit

タグ: Laravel4  

まあ、Laravel4のいろいろなインストール方法を紹介していますが、基本的なお話です。しかし、Laravel限定ではありません。

たぶん、オープンソースのバージョンコントロールはGitがメインになったと言えるのでしょう。PHPのオープンフレームワークのLaravelもGitを利用しており、GitHubをプロバイダーとしています。

composerはPHPのパッケージと、パッケージ間の依存関係マネージャーです。簡単に言えば、あるパッケージのインストーラーです。インストールに必要な仕事をいろいろやってくれます。

composerでインストールしているパッケージはPacagistサービス上に登録します。ソースのホスト先にはGitリポジトリーも指定できます。GitHubはGitのリポジトリープロバイダーですので、当然GitHub上のリポジトリーも指定できます。

インストール作業にはいろいろな方法が取れます。

まずは、Packagistに登録している名前を使う方法です。名前はベンダー/パッケージ名となっています。これを利用してLaravel4をインストールする一番簡単な方法は、create-projectを利用する方法です。

composer create-project laravel/laravel インストール先ディレクトリー名

composerはコマンドにより、デフォルトが異なります。create-projectでは、読み込み先はどうやらソースになっています。

PHPの場合、実行に利用するのはソース自身ですね。何も問題ないと思えます。

しかし、読み込み先のソースというのは、開発に使用するソースという意味合いで考えたほうが良いでしょう。つまり、バージョンコントロールの情報も含んでいます。

具体的には、git cloneを使った時と同様です。さらに、Laravelだけでなく、Laravelが依存しているコードもcloneしてとってきます。その結果、100MBもの転送と容量が必要となります。

もちろん、Laravelを始めGitによるバージョンコントロールが必要であれば、これは良い方法でしょう。オリジナルに変更があれば、git pullで取得できますからね。しかし、大抵の場合、時間がかかりすぎ、好ましくありません。

composer create-project laravel/laravel インストール先ディレクトリー名 --prefer-dist

読み込み先をソースからディストネーション、つまり配布用のリポに変更するのが、オプションで指定した--prefer-distです。

コマンドラインの説明ですと配布用の圧縮ファイルで取り込むと書かれていますが、もう一つ重要な点がありまして、バージョンコントロールの情報を取り込みません。ですから、転送量もストレージも20MBで済みます。依存パッケージも圧縮ファイルで落として、展開されるようです。

ちなみに、Laravelのコンポーネントの更新は、composer updateで、簡単に行えます。

最初の方法でGitのリポをまるごと取り込んで、git pullで変更されるのは、インストールに必要なファイルです。その中には、開発のためにいじりまくるappも含まれます。

大抵、appの内容に変更がある場合は、configディレクトリーの設定ファイルが追加になるか、新しい設定項目が増える場合です。そうした場合、無くてもデフォルト動作するようになっているか、そうでなければ、変更内容が通知されます。(そして、多分、こうした変更があるのは、4.0から4.1とか、マイナーバージョンが上がる、半年に一回だと思われます。)

それを考えると、多くのプロジェクトをLaravel4で開発する場合、5倍の容量を使用し、インストールパッケージのGitリポを全プロジェクトに取り込んでおくのが、有利なのかは良く考えましょう。