PHPプログラミング

最終更新日:
公開日:

レシピ

設定

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のバージョンを指定して読み込むライブラリを設定する方法でした。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。