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