<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Composer on 梓晨's Blog</title><link>https://blog.dawnwl.com/tags/composer/</link><description>Recent content in Composer on 梓晨's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>梓晨科技</copyright><lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.dawnwl.com/tags/composer/index.xml" rel="self" type="application/rss+xml"/><item><title>Composer 指定依赖解析的 PHP 版本</title><link>https://blog.dawnwl.com/posts/composer-php-version/</link><pubDate>Thu, 30 Dec 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/composer-php-version/</guid><description>&lt;h2 id="指定目标-php-版本"&gt;指定目标 PHP 版本
&lt;/h2&gt;&lt;p&gt;当开发环境与部署环境的 PHP 版本不同时，可以让 Composer 按部署环境解析依赖。下面以历史项目的 PHP 7.2.34 为例，版本值应替换为实际目标版本。&lt;/p&gt;
&lt;p&gt;在现有 &lt;code&gt;composer.json&lt;/code&gt; 的 &lt;code&gt;config&lt;/code&gt; 中合并以下设置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;config&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platform&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;php&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;7.2.34&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;config.platform.php&lt;/code&gt; 只模拟 Composer 解析依赖时看到的 PHP 版本，不会安装 PHP、切换解释器，也不能保证应用代码兼容旧版本。&lt;/p&gt;
&lt;h2 id="重新解析依赖"&gt;重新解析依赖
&lt;/h2&gt;&lt;p&gt;保存配置后执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;composer update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Composer 会按目标 PHP 版本重新解析并更新 &lt;code&gt;composer.lock&lt;/code&gt;，无需先删除锁文件。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://getcomposer.org/doc/06-config.md#platform" target="_blank" rel="noopener"
 &gt;Composer platform 配置&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/php-grpc/" &gt;PHP 调用 gRPC：依赖、代码生成与客户端示例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>