このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
composer:1.9:phpswitch [2020/03/24 13:25] tanaka [ComposerとPHPの関係] |
composer:1.9:phpswitch [2020/04/18 15:07] y2sunlight [Composerを起動するPHPのバージョンを変更する方法] |
||
---|---|---|---|
行 14: | 行 14: | ||
* [[composer: | * [[composer: | ||
* [[composer: | * [[composer: | ||
- | * | ||
---- | ---- | ||
行 66: | 行 65: | ||
最初に思いつくのは「composer.jsonでPHPのバージョンを指定できないか?」という事です。勿論これは可能で、Composer.jsonに config.php を追加します。 | 最初に思いつくのは「composer.jsonでPHPのバージョンを指定できないか?」という事です。勿論これは可能で、Composer.jsonに config.php を追加します。 | ||
- | < | + | < |
{ | { | ||
" | " | ||
行 126: | 行 125: | ||
この時、ComposerはPHP5.4.19を対象としたphpdotenvパッケージを探します。以下が、composer.jsonの内容です。 | この時、ComposerはPHP5.4.19を対象としたphpdotenvパッケージを探します。以下が、composer.jsonの内容です。 | ||
- | < | + | < |
{ | { | ||
" | " | ||
行 158: | 行 157: | ||
</ | </ | ||
- | * [1行名] コメント | + | * [2行名] コメント |
- | * [2行名] 遅延環境変数の展開を無効にする | + | * [3行名] 遅延環境変数の展開を無効にする |
- | * [3行目] PATH環境変数の通っているphp.exeでcomposer.pharを起動する(%~dp0 は composer.bat の存在するドライブ文字とパスを表す。上のに場合 C: | + | * [4行目] PATH環境変数の通っているphp.exeでcomposer.pharを起動する(%~dp0 は composer.bat の存在するドライブ文字とパスを表す。上のに場合 C: |
composer.batで何が起こっているか分かれば話は簡単です。インストールされているcomposer.pharはこのまま使う事にして、composer.batだけをプロジェクトフォルダ(composer.jsonと同じフォルダ)にコピーしてcomposer.batを以下のように変更します。 | composer.batで何が起こっているか分かれば話は簡単です。インストールされているcomposer.pharはこのまま使う事にして、composer.batだけをプロジェクトフォルダ(composer.jsonと同じフォルダ)にコピーしてcomposer.batを以下のように変更します。 | ||
行 172: | 行 171: | ||
</ | </ | ||
- | 変更箇所は3行目です。php.exeとcomposer.pharを絶対パスに変更します。この例ではPHPのバージョンを現在使用しているもの(7.2.8)から7.3.15に上げています。 | + | 変更箇所は4行目です。php.exeとcomposer.pharを絶対パスに変更します。この例ではPHPのバージョンを現在使用しているもの(7.2.8)から7.3.15に上げています。 |
Composer diag 以下を実行すると確かに動いていることが確認できます。 | Composer diag 以下を実行すると確かに動いていることが確認できます。 | ||
行 194: | 行 193: | ||
この方法では、composer.batをプロジェクトに取り込んでいるので既定のPHPバージョンを意識する必要が無く、PATH環境変数も必要ありません(Eclipseもphp.exeは絶対Path指定、Composer以外でPATHを使用していない場合php.exeのPATHは不要になります)。但し、composer.batは絶対パスを含むので環境依存となり、プロジェクトメンバでこのファイルを共有する場合は注意が必要です。悩ましい限りです。 | この方法では、composer.batをプロジェクトに取り込んでいるので既定のPHPバージョンを意識する必要が無く、PATH環境変数も必要ありません(Eclipseもphp.exeは絶対Path指定、Composer以外でPATHを使用していない場合php.exeのPATHは不要になります)。但し、composer.batは絶対パスを含むので環境依存となり、プロジェクトメンバでこのファイルを共有する場合は注意が必要です。悩ましい限りです。 | ||
+ | |||
+ | \\ | ||