文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

【PHP学習】外部ライブラリ管理ツール、Composer

前回の記事でも、PHPではたっくさんの関数やライブラリが用意されてて便利って話をしました。
そんななか、本日学習を進めるなかで新たなことばを知りました。


それが

「Composer」
パッケージ管理ツールだそうです。
(なんかRubyやってるときもそんなんあったっけな)

拡張ライブラリをインストールするための管理ツールで、ライブラリ追加時に以下のようなことをしてくれます。



1.インストール・アンインストールをコマンドひとつで実行
パッケージ間に依存性があることが多いですが、それらを自動で解決してくれます。
また、定義ファイルに定義しておくことでまとめてインストールすることが可能です。


2.アプリケーション単位にパッケージを管理する
アプリケーション単位で個別にパッケージをインストールするため、
アプリケーションどうしで同じライブラリの異なるバージョンを利用することが可能です。

※以前はPEARっていう管理ツールが使われてたらしいんですが、これはすべてのアプリケーションで
同じバージョンしか対応してませんでした(プラットフォーム単位でライブラリを管理してた)



3.ライブラリの自動ローディング機能を利用できる

クラスを個別にインポートしなくても、自動で有効化してくれます。
なので、プログラムから直接呼び出してないライブラリに関しても使えないといったことがなく便利です。



早速使ってみました。


例、「Smarty」ライブラリのインストール


1.Composerのインストール

公式サイトからインストーラ実行、デフォルトで進める。


2.定義ファイル作成

現在のアプリケーションで利用するライブラリを定義しておく。
{
 "require":{
  "smarty/smarty": "~3.1"
  }
}

上記で、現在のアプリではsmartyの3.1以上を利用すると定義しました。


3.パッケージのインストール

以下コマンドでインストール実行
composer install

上記を実行するとアプリケーションルート配下に、ライブラリ動作に必要なフォルダとファイルが作成される。
そのなかのautoload.phpはライブラリを自動ロードするためのファイル


以上でSmartyというライブラリのインストールが完了しました。
このライブラリを実際に使ってみます。


ビジネスロジック

主な内容は
autoload.phpを最初にインポートして、
・2行目でクラスのインスタンス化、
・テンプレートと、コンパイルすみテンプレートの保存先(一度実行されるとそれ以降はこれが利用される)を設定、
・最後にテンプレートの呼び出し

という流れです。


*テンプレート

拡張子は .tplにする



これを実行すると、

f:id:ron623:20190312181915p:plain

本文はビジネスロジックで記載した内容が、タイトル部分にはテンプレートファイルの内容が反映されます。



こうして枠組みがいろいろ用意されているのはいいですね。

また、この例だとちょっとわかりづらいですが、開発時にビジネスロジックとそれ以外のテンプレ的な部分を
分けられるので分業しやすいですし便利だなと感じました。