ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

PHP composer, あれ?開発版がインストールされる。設定がそうなってた。

php
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

Windows 10のcomposerのglobal環境で、ブランチのmaster, mainや開発版がインストールされる。Linuxではそんなことないのに。

composer.jsonを見たら設定がそうなってた。LinuxとWindowsを比較してもやっぱり設定がちがう。

設定を変えた記憶がないのに。

ここ数年、Windows 10のcomposerのパッケージを更新してなかったので、久しぶりにアップデートしました。

composer global update

すると、パッケージのバージョンがこうなっている。

composer global show
Changed current directory to C:/Users/***/AppData/Roaming/Composer
composer/xdebug-handler               1.4.x-dev f27e06c  Restarts a process without Xdebug.
felixfbecker/advanced-json-rpc        v3.2.1             A more advanced JSONRPC implementation
felixfbecker/language-server          dev-master 9dc1656 PHP Implementation of the Visual Studio Code Language Ser...
felixfbecker/language-server-protocol dev-master 9d846d1 PHP classes for the Language Server Protocol
jetbrains/phpstorm-stubs              dev-master 45cb2ea PHP runtime & extensions header files for PhpStorm
microsoft/tolerant-php-parser         v0.0.23            Tolerant PHP-to-AST parser designed for IDE usage scenarios
netresearch/jsonmapper                v1.6.0             Map nested JSON structures onto PHP classes
phpdocumentor/reflection-common       dev-master a0eeab5 Common reflection classes used by phpdocumentor to reflec...
phpdocumentor/reflection-docblock     4.3.4              With this component, a library can provide support for an...
phpdocumentor/type-resolver           1.x-dev 4b3579f    A PSR-5 based resolver of Class names, Types and Structur...
psr/log                               1.1.4              Common interface for logging libraries
sabre/event                           5.1.2              sabre/event is a library for lightweight event-based prog...
sabre/uri                             2.2.1              Functions for making sense out of URIs.
squizlabs/php_codesniffer             4.0.x-dev 745d952  PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files a...
symfony/polyfill-ctype                dev-main f24ae46   Symfony polyfill for ctype functions
webmozart/assert                      dev-master b419d64 Assertions to validate method input/output with nice erro...
webmozart/glob                        4.1.0              A PHP implementation of Ant's glob.
webmozart/path-util                   dev-master 95a8f7a A robust cross-platform utility for normalizing, comparin...

正式版じゃなくてGitのブランチ(master, main)や開発版(***-dev)が多くなってる。

composer.jsonファイルを確認したら設定がそうなってた。

C:\Users\***\AppData\Roaming\Composer\composer.json
{
    "minimum-stability": "dev",
    "require-dev": {
        "felixfbecker/language-server": "dev-master"
    },
    "require": {
        "squizlabs/php_codesniffer": "4.0.x-dev"
    }
}

'minimum-stability' が 'dev' になってるので、まだリリースされてない最新版がインストールされた。

念の為、Linux環境のglobalを確認したらこの記述はない。ということでこれを削除。

'minimum-stability' の未指定(デフォルト)は 'stable' でリリース版。

修正後のcomposer.json
{
    "require-dev": {
        "felixfbecker/language-server": "*"
    },
    "require": {
        "squizlabs/php_codesniffer": "*"
    }
}

パッケージのバージョンも最新版をダウンロードするように変えときます。そうしないとエラーが出るから。

composer global update
Changed current directory to C:/Users/***/AppData/Roaming/Composer
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires felixfbecker/language-server dev-master -> satisfiable by felixfbecker/language-server[dev-master].
    - felixfbecker/language-server dev-master requires jetbrains/phpstorm-stubs dev-master -> found jetbrains/phpstorm-stubs[dev-master] but it does not match your minimum-stability.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

エラーの内容は、リリース版をインストールするのにバージョンはそうじゃないものになってるよ? というもの。

改めて全パッケージをまとめてアップデート

composer global update
composer global show
Changed current directory to C:/Users/***/AppData/Roaming/Composer
felixfbecker/advanced-json-rpc    v1.2.10 A more advanced JSONRPC implementation
felixfbecker/language-server      v2.3.1  PHP Implementation of the Visual Studio Code Language Server Protocol
netresearch/jsonmapper            v0.11.0 Map nested JSON structures onto PHP classes
nikic/php-parser                  v3.1.5  A PHP parser written in PHP
phpdocumentor/reflection-common   1.0.1   Common reflection classes used by phpdocumentor to reflect the code stru...
phpdocumentor/reflection-docblock 3.3.2   With this component, a library can provide support for annotations via D...
phpdocumentor/type-resolver       0.4.0
sabre/event                       4.0.0   sabre/event is a library for lightweight event-based programming
squizlabs/php_codesniffer         3.6.0   PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects viol...
symfony/polyfill-ctype            v1.23.0 Symfony polyfill for ctype functions
webmozart/assert                  1.10.0  Assertions to validate method input/output with nice error messages.

ぜんぶ、リリース版に変わりました。

Windowsのglobalはスタビリティのデフォルトが 'dev' ?

ボクは、minimum-stability の設定を変えた記憶がありません。Linux環境では未設定だったのでWindowsもそうだと思ってた。

Windowsではデフォルトがちがうんだろうか?

ボクのかんちがいの可能性もけっこうあるので断定はできませんが、もし同じようなことになったら、composer.jsonを確認しましょう。

ちなみに、minimum-stability はルートパッケージにしか設定できません。ルートパッケージとは、プロジェクトのルートディレクトリにあるcomposer.jsonにだけ設定できるということ。

前の投稿
PHP composer, パッケージのインストールでバージョンを指定するいろいろな方法。
PHP composer, autoload機能を有効活用しよう!
次の投稿
コメントを残す

*