最終更新日:
公開日:
レシピ
設定
ComposerでPHPのバージョンを指定する
PHPのパッケージ管理システムであるComposerについて、PHPのバージョンを指定して有効なライブラリを読み込む方法を解説します。
この記事のポイント
- composerコマンドでPHPのバージョンを指定する
- PHPのアップグレード/ダウングレードに対応したライブラリをインストールできる
目次
ComposerでPHPのバージョンを指定する
ComposerはPHPで使用するライブラリを管理することができる大変便利なパッケージ管理システムです。
今回はPHPのバージョンを指定して、読み込むライブラリを設定する方法について解説します。
PHPのバージョンを指定できるとアップグレードのみでなく、ダウングレードしてライブラリも利用できるものに一括でダウングレードすることができます。
今回は例としてPHPのバージョンを8.1.6から8.0.16へダウングレードしていきます。
cdコマンドなどでcomposer.jsonのあるディレクトリへ移動してから、以下の2つのコマンドを実行してください。
コマンド入力例
graycode@taro % composer config platform.php 8.0.16
graycode@taro % composer update
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 18 updates, 0 removals
- Downgrading symfony/cache (v6.1.0 => v6.0.9)
- Downgrading symfony/config (v6.1.0 => v6.0.9)
- Downgrading symfony/dependency-injection (v6.1.0 => v6.0.9)
- Downgrading symfony/error-handler (v6.1.0 => v6.0.9)
- Downgrading symfony/event-dispatcher (v6.1.0 => v6.0.9)
- Downgrading symfony/filesystem (v6.1.0 => v6.0.9)
- Downgrading symfony/finder (v6.1.0 => v6.0.8)
- Downgrading symfony/framework-bundle (v6.1.0 => v6.0.9)
- Downgrading symfony/http-foundation (v6.1.0 => v6.0.9)
- Downgrading symfony/http-kernel (v6.1.0 => v6.0.9)
- Downgrading symfony/intl (v6.1.0 => v6.0.8)
- Upgrading symfony/polyfill-ctype (v1.25.0 => v1.26.0)
- Upgrading symfony/polyfill-mbstring (v1.25.0 => v1.26.0)
- Upgrading symfony/polyfill-php80 (v1.25.0 => v1.26.0)
- Upgrading symfony/polyfill-php81 (v1.25.0 => v1.26.0)
- Downgrading symfony/routing (v6.1.0 => v6.0.8)
- Downgrading symfony/var-dumper (v6.1.0 => v6.0.9)
- Downgrading symfony/var-exporter (v6.1.0 => v6.0.9)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 18 updates, 0 removals
- Downloading symfony/polyfill-mbstring (v1.26.0)
- Downloading symfony/polyfill-php80 (v1.26.0)
- Downloading symfony/polyfill-ctype (v1.26.0)
- Downloading symfony/polyfill-php81 (v1.26.0)
- Upgrading symfony/polyfill-mbstring (v1.25.0 => v1.26.0): Extracting archive
- Upgrading symfony/polyfill-php80 (v1.25.0 => v1.26.0): Extracting archive
- Upgrading symfony/polyfill-ctype (v1.25.0 => v1.26.0): Extracting archive
- Upgrading symfony/polyfill-php81 (v1.25.0 => v1.26.0): Extracting archive
- Downgrading symfony/var-exporter (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/cache (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/filesystem (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/config (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/dependency-injection (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/finder (v6.1.0 => v6.0.8): Extracting archive
- Downgrading symfony/http-foundation (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/event-dispatcher (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/var-dumper (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/error-handler (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/http-kernel (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/routing (v6.1.0 => v6.0.8): Extracting archive
- Downgrading symfony/framework-bundle (v6.1.0 => v6.0.9): Extracting archive
- Downgrading symfony/intl (v6.1.0 => v6.0.8): Extracting archive
Generating autoload files
30 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
1つ目のコマンド「composer config platform.php 8.0.16」は使用するPHPのバージョンを指定します。
このコマンドを実行した時点で、composer.jsonに使用するPHPバージョンの記載が追加されます。
2つ目のコマンド「composer update」で使用するライブラリのバージョンの調整を実行します。
PHPのバージョンに合わせて利用できるパッケージが再インストールされます。
PHPのバージョンを下げた場合はパッケージもダウングレードされるものが多いですが、利用できるパッケージについてはアップグレードされるものもあります。
composer.jsonに使用するPHPのバージョンを指定する
先ほどはcomopserのコマンドからPHPのバージョンを指定しましたが、composer.jsonに直接指定する方法もあります。
以下の例ではcomposer.jsonにPHPのバージョンを8.0.16に指定してから「composer update」を実行します。
赤字の箇所が追記する設定です。
composer.json
{
"require": {
"slim/slim": "4.*",
"slim/psr7": "^1.4",
"psr/container": "^1.0",
"php-di/php-di": "^6.3",
"slim/twig-view": "^3.2",
"vlucas/valitron": "^1.4",
"odan/session": "^5.1",
},
"autoload": {
"psr-4": {
"DemoApp\\": "src/"
}
},
"config": {
"platform": {
"php": "8.0.16"
}
}
}
composer.jsonの変更を保存してから、下記のコマンドを実行します。
コマンド入力例
graycode@taro % composer update
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 18 updates, 0 removals
----- 省略 -----
実行結果は先述した方法と同様になります。
以上、composerでPHPのバージョンを指定して読み込むライブラリを設定する方法でした。