ラボ > PHP:Composer

PHPのパッケージ管理「Composer」

Composerのメモ。

作成日:2018-11-26, 更新日:2020-07-20

備忘録

PHPのライブラリとかを使いたいときに「Composerを使う」ってのがよくある。

「Composer」が分からないのに「Composerを使うと簡単だよ!」とか言われても困るし、インストの説明されても意味が分からんから、何かエラーが出ると対応ができなくなる。

基本

・「Composer」は関連のあるライブラリとかを良い感じにインストしてくれるヤツ(※アップデート類も可能)
・「Composer」はインスト必要
・「Composer」で対象を指定して任意の場所にライブラリたちをインストする

単独で動かないライブラリを動かしてくれるライブラリとかも一緒にインストしてくれるっぽい。
※「Composer」を使わないなら必要なライブラリを一つずつインストしていく。

単独で動かす

・「Composer」は単独で動いてくれる
・「composer.json」に従って「Composer」が「インストしてくれる」という感じ。

個々の環境によって使い方が異なる。
以下のメモは「FuelPHPで作ったWebサイトを公開したいとき」という場合

開発環境→本番環境にup:基本

1.開発環境に「Composer」をインスト
2.「FuelPHP」を「Composer」でインスト
3.「FuelPHP」でWeb構築
4.本番環境に「FuelPHP」をup
※以降は、基本、開発環境で修正したものを本番環境に反映:手動 or プロジェクト管理ツールを使う

・開発環境が「Xampp」なら「Xampp」に「Composer」をインストする(※Xamppの中じゃなくてもOK)
・本番環境に「Composer」をインストする必要無し。

開発環境→本番環境にup:ライブラリをアップデートさせる

自サイトや金をかけれるなら、ライブラリとかは適宜アップデートさせる
※セキュリティの観点からもライブラリはアップデートさせたいが、そういうわけにいかないのが世の中。

▼上記の「1~4」のあと
5.任意のタイミングで開発環境で「Composer」を使ってアップデート
6.「5」でアップデートされた「FuelPHP」を本番環境にアップデート

インスト

Composer」からダウンロードして、インストする。

インスト先はドコでもいい。

▼Xamppで使う場合
・C:\xampp
・C:\xampp\composer
・・・みたいな感じが分かりやすいかも。

コマンドでComposerを直接インストすることも可能っぽい。
詳しくは「Composer」を見る。

Composerでライブラリをインスト

1.インストしたい場所にインストしたいライブラリたちを記載した「composer.json」を用意
2.「composer.json」を置いた場所にカレントを移して、Composerを実行
※環境PATHが通っていないと、Composerを絶対PATHで実行する必要があると思う。基本インスト時にPATHは通るはず。
※CMDなら動く。設定次第かもしれないが・・・PowerShellだと動かない。

# cd C:\xampp\htdocs\〇〇〇
# composer install

Composerでライブラリをアップデート

# cd C:\xampp\htdocs\〇〇〇
# composer update

Composerでライブラリを追加

1.「composer.json」にライブラリ追記
2.「composer update」をする

PHPのバージョンを指定してライブラリを追加したい

▼composer.jsonにconfig.platform.phpを追加

{
    "require": {
        ~パッケージ~
    },
    "config": {
        "platform": {
            "php": "5.6.34"
        }
    }
}

※この.jsonを使って「composer update」とかする。

Composer自身の確認等

Composerが利用可能かチェック

・「composer.phar」のあるとこにカレントを移してphpで実行

# cd ~composer.pharを置いてる場所~
# php composer.phar

※「composer.phar」を絶対PATHで指定するのも良いと思う。
※「php」のPATHが通っていないなら絶対PATHで指定するか、カレントを移すかする。

Composerのバージョンチェック

# composer dump-autoload -V

めも

Composerで実行できないとき

・そもそも・・・Composerをインストした記憶があるのか?
・CMDなら動く。設定次第かもしれないが・・・PowerShellだと動かない。