Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

周辺知識

Composerについて(入門編)

2017/10/16

Laravelはcomposerを使ってプロジェクトの作成やライブラリをインストールします。

例えばLaravelでfooというプロジェクトを作成する場合は以下のコマンドを実行します。

composer create-project "laravel/laravel=5.2.*" foo

composerについての理解が深まると、Laravelの理解も一層深まります。

今回はcomposerについてのエントリーです。

 

composerとは

composerとはPHPのパッケージ管理システムのことです。

それまでPHPのライブラリを入れるためにはその公式サイトにアクセスしzipファイルをダウンロードしていました。

しかし問題なのはそのあと。

本当はAというライブラリを使用したいだけなのに、依存ファイルとしてBというライブラリとCというライブラリも必要なことがわかりました。

こうなるとライブラリの依存性地獄です。

手間もかかりますし、管理も大変ですよね。

ここでcomposerの出番です。

composerを使うとコマンド一発で依存ファイル(Bライブラリ、Cライブラリ)も含めダウンロードしてくれます。

// "A"というライブラリを依存ファイルも含めてダウンロード
composer require A
【解説】
composerコマンドを使うにはcomposer自体をインストールする必要があります。
Windowsでcomposerを使うためには下記からComposer-Setup.exeをダウンロードします。
https://getcomposer.org/download/

composer経由でダウンロードしたライブラリはvendorディレクトリに全て放り込まれます。

つまり先ほどダウンロードした"A"というライブラリはvendorディレクトリにあります。

【注意】
Laravelのgitignoreファイルにはvendorディレクトリが記述されています。
vendorディレクトリはGitでの管理対象外です。
つまり開発環境でパッケージをダウンロードしたら同様に本番環境でもcomposerコマンドでパッケージをダウンロードしないといけません。
【さくらレンタルサーバ】Laravelのvendorディレクトリを入れる

composerを利用するとライブラリを入れるのも楽だし全て管理も簡単になります。

 

composer.jsonとは

composerのrequireコマンドでダウンロードしたパッケージはcomposer.jsonに記載されます。

:
  "require": {
  "php": ">=5.5.9",
  "laravel/framework": "5.2.*",
  "barryvdh/laravel-debugbar": "^2.3",
  "intervention/image": "^2.3",
  "laravelcollective/html": "5.2.*",
  "doctrine/dbal": "^2.5"
  },
:

もし他のメンバーがcomposerで管理されたライブラリを落とすには、composer.jsonを共有すればOKです。

composer.jsonがあるディレクトリでcomposer installとコマンドを打つだけで、依存しているライブラリを持ってきてくれます。

 

composerコマンド

composerを使った開発は手順がはっきりしています。

1)プロジェクトを作るのにcomposer create-projectを実行

2)必要なパッケージを入れるためにcomposer requireを実行

3)パッケージが不必要になったらcomposer removeを実行

4)アプリケーションで名前空間の設定が追加されればcomposer dump-autoloadを実行

 

create-project

プロジェクトの作成時に使います。

Laravelで開発するときに最初にやる作業ですね。

// laravel5.2でfooというプロジェクトを作成
composer create-project "laravel/laravel=5.2.*" foo

 

require

コマンドでパッケージ入れる場合はrequireコマンドを使います。

fooというパッケージをインストールする場合は以下になります。

composer require foo

例)vendor/fooパッケージをバージョン指定(2系)してダウンロードする場合。

composer require "vendor/foo": "2.*"
【構文】
composer require {パッケージ名}:{バージョン番号}

【バージョン指定】
バージョン指定ではアスタリスク(ワイルドカード)やチルダが利用できます。

指定 対象となるバージョン
1.* 1.x.x
~1.1 1.1以上、2未満

 

remove

composer requireコマンドの逆です。

一応入れてみたけど、やっぱり使わないライブラリとかが出てきたら、このコマンドで削除します。

 

install

composer.jsonに記載されている内容、もしくはcomposer.lockに記載されている内容に従って、パッケージをインストールします。

例えばローカル環境でダウンロードしたパッケージを本番環境でも同様にパッケージを利用する場合は、composer.jsonを本番にアップしてcomposer installを実行します。

【注意】
Laravelの.gitignoreではデフォルトで/vendorが記述されています。(vendorディレクトリは管理対象外)
つまりgit cloneやgit pullコマンドをしてもvendorディレクトリは持ってこれません。
この場合、composer.jsonをアップしてcomposer installコマンドを実行します。
【さくらレンタルサーバ】Laravelのvendorディレクトリを入れる

 

update

現在の依存性を全部最新化したい時とかに使います。

ただ、ライブラリ群のバージョンを他のメンバーと統一することができなくなるので個人的にはあまり使いません。

 

dump-autoload

これでvenderディレクトリにautoload.phpが作成されます。

あとは作成されたautoload.phpをbootstrap.phpなどでrequireすればautoloadが使用できるようになります。

 

【チュートリアル】WindowsにComposerを入れてみる

composerを入れるには二通りのやり方があります。

・インストーラーを使った導入
・手動でインストール

インストーラーを使ったほうが簡単なので、本記事ではインストーラーを使った導入について説明します。

 

シナリオ

【1】Composerの公式サイトにアクセス

【2】Composer-Setup.exeをダウンロード&インストール

【3】動作確認

【注意】
Composerをインストールする前にXAMPP(PHP)を先に入れておく必要があります。
PHPがなければComposerをインストールすることはできません。

 

【1】Composerの公式サイトにアクセス

Composerの公式サイトにアクセスします。

https://getcomposer.org/

 

【2】Composer-Setup.exeをダウンロード&インストール

1)TOPの「Getting Started」をクリック

2)Windows Installer内の「Composer-Setup.exe」をクリック。

3)インストーラーのウィザードが開きます。基本「next」でOKです。

 

【3】動作確認

コマンドプロンプトを開いて「compser -v」と打ちます。

上記のような画面になればcomposerのインストールはOKです。

 
composerについては以上です。

 

-周辺知識