Composerでらくらくパッケージの導入ー依存関係もバッチリ!

プログラミング
この記事は約7分で読めます。
記事内に広告が含まれます。

PHPでシステムを開発するときにConposerを使わないなんてありえません。
composerとはPHPの依存関係管理システムです。
パッケージ間の依存関係を解決してくれるありがたいシステムです。
例えば、導入予定のライブラリが他のライブラリに依存しているような場合、それぞれを取ってきてそれぞれインストールする必要があります。
さらに、このバージョンのライブラリは別のライブラリの特定のバーションを必要とするような場合・・・
もうほとんど管理が不可能になります。
これらの厄介な依存関係管理を自動で行ってくれるのがComposerです。

Composer

あと
パッケージの依存関係を知りたいときは
Packagist
ここでパッケージ名を入れるとVersionごとの依存関係を表示してくれます。

スポンサーリンク

インストール

Macの場合以下のコマンドで

$ brew install composer

正しくインストールされたか確認

$ composer -V
Composer version 1.9.0 2019-08-02 20:55:32

Composerコマンド一覧

$ composr
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.9.0 2019-08-02 20:55:32

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                Shows the short information about Composer.
  archive              Creates an archive of this composer package.
  browse               Opens the package's repository URL or homepage in your browser.
  check-platform-reqs  Check that platform requirements are satisfied.
  clear-cache          Clears composer's internal package cache.
  clearcache           Clears composer's internal package cache.
  config               Sets config options.
  create-project       Creates new project from a package into given directory.
  depends              Shows which packages cause the given package to be installed.
  diagnose             Diagnoses the system to identify common errors.
  dump-autoload        Dumps the autoloader.
  dumpautoload         Dumps the autoloader.
  exec                 Executes a vendored binary/script.

コマンドはたくさんありますが、使うコマンドはだいたい限られています。

すでにlaravelのcloneが終わっていればプロジェクトホームに移動して

$ composer install

これだけで必要なライブラリの依存関係を解決しながらダウンロード、セットアップしてくれます。
ちなみに、インストールする予定のパッケージはcomposer.jsonファイルに書かれています
composer.lockが存在する場合は個々に書かれたバージョンを取得してくれます。

いきなりインストールする前にドライラン(仮実行)して見るには

$ compose install --dry-run

これから導入する予定のライブラリを表示してくれます。

すでにライブラリがインストールされている場合、最新に更新するには

$ composer update

最新のパッケージに更新してくれます。

Composer自体のアップデートは

$ composer self-update

これでComposerを最新化します。
最新化したあとはccomposer updateコマンドでパッケージも最新化しましょう。

composerでインストールしたライブラリは[vendor]ディレクトに保存されます。
再度入れ直したい場合はVendorディレクトを削除し再びcomposer installしてください。

ライブラリを導入する

例えば、ユーザーがコメントを書き込める機能をシステムに組み込みたいとします。
ただし、人間かだけが書き込みができて、ロボットの書き込みを排除したい場合にCAPTCHA(人間とマシンを判別するチューリングテスト)機能というのがありますので、それを組み込むことにします。(特にこのライブラリに意味はありません、ただのサンプルです)

こんなやつです。

Packagistサイトに移動し
[CAPTCHA]と入力し検索します。
そのなかでLaravelに対応したパッケージを探します。

mews/captcha
Laravel 5 & 6CaptchaPackage

というパッケージが見つかりました。
右側に↓マークが有り663,317回のダウンロードがあったことが確認できます。(2019年9月時点)

詳細を表示し導入方法を確認します。

ここにcomposeコマンドが書かれていますので
プロジェクトに移動し実行します。

一緒に導入される(依存関係の有る)ライブラリはここで確認できます。

もし古いパッケージを導入したいなら

Versionを定しインストールすることもできます。

$ composer require mews/captcha 3.0.0

新しいパッケージでバグなどがあった場合はわざと古いパッケージを入れることがあります。

コメント

タイトルとURLをコピーしました