こんにちは、北村です。 今回はOOP研修中に、composerを使ってPHPの標準に組み込まれていないクラス(パッケージ)の読み込み手順についてまとめました。 初学者の私が理解できる情報が調べてもあまり見当たらなかったので、composerをインストール後〜サードパーティライブラリを読み込むまでの一連の手順をまとめます。
※この記事で出てくる用語として、「パッケージ」という用語が出てきますが、Composerを通してインストールする「ライブラリ」のことを指しています。
目次
- Composerとは?
- パッケージインストール〜サードパーティパッケージ読み込みまでの手順
- まとめ
1. Composerとは?
そもそもComposerとは何なのか?
調べると 「パッケージ依存管理ツール」 や 「ライブラリ依存管理ツール」 と書かれています。
Composerについて多くの情報が出てきますが要約すると、ComposerはパッケージAをインストールすれば、関連するパッケージB・Cも一緒にインストールしてくれる便利なツールのようです。
例えば、プロジェクトにパッケージAが必要だと仮定します。 しかしパッケージAを使用するためにはパッケージBが必要で、パッケージBの使用にはパッケージCが必要になります。今回はパッケージAと依存関係のあるパッケージがBとCの2つなので、一つずつパッケージをインストールすることも可能ですが、これが大量にあった場合一つずつインストールするのは大変だと思います。 Composerを使えばパッケージAのインストール時に依存関係にあるパッケージB・Cもまとめてインストールしてくれます。
今回は日付操作ライブラリCarbonを例にパッケージインストールからパッケージの読み込みまでの手順をまとめていきます。
2. パッケージインストール〜サードパーティパッケージ読み込みまでの手順
手順1:composer.jsonの作成
- パッケージを使うには、インストールするパッケージの情報をJSONフォーマットで記述する 「composer.json」 ファイルをプロジェクトの最上位ディレクトリ(ルートディレクトリ)に作成する必要があります。
- composer.jsonは手動での作成と、
$ composer init
コマンドで対話形式でいくつかの設定を加えながら作成していくことも可能です。 今回は$ composer init
コマンドで作成していきます。(設定項目の入力は全てスキップ可能です。)
$ composer init
コマンド入力後、プロジェクト直下に 「src」 ディレクトリ、 「vendor」 ディレクトリ、 「composer.json」 ファイルが作成されたら完了です。
手順2:composer.jsonへパッケージを追加。
- 作成された「composer.json」ファイルを確認すると、
"require":{}
の欄があると思います。 この欄に$ composer require nesbot/carbon(パッケージ名)
コマンドでnesbot/carbonパッケージを追加し、インストールしていきます。
パッケージの検索は 「Packagist」 で行えます。 インストールしたいパッケージ名やキーワードで検索できます。
$ composer require nesbot/carbon
コマンド入力前$ composer require nesbot/carbon
コマンド入力後 パッケージ名の後ろ位記載されているのは、バージョン情報です。
これでパッケージのインストールは完了です。
- パッケージをインストール後、ディレクトリとファイルが増えたと思います。一部説明します。 プロジェクト直下に追加された
- 「composer.lock」 ファイルは、パッケージやパッケージのバージョン情報が書き込まれています。
- 「vendor」 ディレクトリ内には、インストールした 「nesbot/carbon」 のパッケージが追加されていると思います。
手順3:Carbonパッケージを出力ファイルに読み込む
- 通常、クラスの定義されているファイルの読み込みには「require」や「include」を使い定義されているファイルパスを指定し、「use」では読み込みファイル先「namespace」の指定をすると思います。
Composerを使いインストールしたパッケージを使う場合は、
- 「require」には、vendor配下にある 「autoload.php」 のファイルパス を指定します。
- 「use」には、Composerでインポートされたパッケージのどの機能を使用するかを宣言します。今回は 「Carbon\Carbon」 を宣言しています。
これでパッケージの読み込みは完了です。
3. まとめ
今回はComposerでパッケージをインストールし読み込む単純な作業の流れをまとめましたが、自作のパッケージを作成し公開することも可能なようです。 まだまだComposerは奥深そうなので、これから学習していく上でつまづいたところがあればブログを通じて共有していきたいと思います。