PHP Composer
PHP Composer とは
PHP のパッケージ管理ツール と呼ばれてます。
Node.js や npm を使ったことある方にはなんとなくわかるでしょうか。
Node.js の npm と似た扱いになります。
Node.js では package.json に当たる部分が Composer では composer.json になります。
なにがいいのかというと
- ライブラリーを簡単にインストールできる
- ライブラリーの依存関係を解決してくれる
- composer.json の内容からパッケージをインストールするのでチームでの共有がしやすい。(プロジェクト進行中にパッケージの追加があっても composer.json を Git で共有すればよい)
- インストールされたパッケージは基本 Git の管理外なので Git-Repository に影響をあたえない。
と言われてます。
Composer がない時代
経験談ですが・・・
あるシステム(仮に EC サイト)に Pear ライブラリ から PearDB
をインストールしランキングを表示させるモジュールを作る。
サイト内でランキングを表示する。
その後
ランミング結果を xml 化し軽量化および外部配信を試みる 。
XML_Query2XML
という SQL の結果を簡単に xml ファイルへ変換してくれるライブラリーをインストール
それなりのスクリプトを組んで実行してみる。
PearDB には対応してません。 とエラーになる。
いろいろググって Pear から MDB2 というライブラリは PearDB の後継だと知る。
MDB2 をインストールおよび動作チェック。
もう[めんどくさい]{.under_line}
Composer があると
composer.json に 必要なライブラリーを記述します。
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
}
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
この記述例をもとに Repository からダウンロートしてくれます。 その時依存関係を解決を Composer が試みてくれます。
Autoloader
"autoload":
{
"psr-4": {
"myhoge\": "src/"
}
}
オートローダーはファイルを自動で読み込んでくれる仕組みです。
<?php
namespace myhoge;
class hoge {
function hogehoge(){
return true;
}
}
}
?>
ディレクトリ src を名前空間 ( namespace ) myhoge で読み込めます。
PHP Composer を CentOS7 にインストール
以下 Root 権限 もしくは sudo
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
公式サイト推奨のインストール方法です。
composer-setup.php のダウンロードをしてます。
# php composer-setup.php
composer の本体である composer.phar を作ります。
# php -r "unlink('composer-setup.php');"
composer.phar ができたのでダウンロードした omposer-setup.php を削除します。
# mv composer.phar /usr/local/bin/composer
composer をグローバルで使えるよう/usr/local/bin/ に配置してます。
# which composer
/usr/local/bin/composer
composer が配置されたか確認
# composer --version
Composer version 1.8.3 2019-01-30 08:31:33
Version 確認
これで Composer の準備が整いました。