你是否也曾被项目文件中那些“不合时宜”的依赖部署路径所困扰?
作为一名php开发者,我们早已习惯了composer带来的便利:通过简单的
composer require
vendor
想象一下,你在维护一个WordPress项目。除了核心程序和主题、插件(这些可以通过
composer/installers
wp-content/themes
wp-content/plugins
.mo
.po
object-cache.php
sunrise.php
wp-content/languages/
wp-content/
传统的做法是什么?手动下载,然后复制粘贴到目标位置。但这样一来,每次依赖更新,你都得重复这个繁琐且容易出错的过程。更糟糕的是,如果多个插件或主题都提供了语言包,或者你需要安装多个语言版本,它们都需要放到同一个
wp-content/languages/
这无疑给项目带来了巨大的管理负担和潜在的风险,让本应高效的Composer体验大打折扣。
Composer在线学习地址:学习地址
koodimonni/composer-dropin-installer
正当我在手动复制粘贴的泥潭中挣扎时,
koodimonni/composer-dropin-installer
composer/installers
使用
koodimonni/composer-dropin-installer
1. 安装插件
首先,通过Composer将其添加到你的项目依赖中:
<pre class="brush:php;toolbar:false">{ "require": { "koodimonni/composer-dropin-installer": "*" } }
然后运行
composer update
composer install
2. 配置composer.json
核心的配置在
composer.json
extra
dropin-paths
<pre class="brush:php;toolbar:false">{ "extra": { "dropin-paths": { "目标路径/": ["指令:目标:文件"] } } }
这里的语法非常灵活:
目标路径/
指令
package
package:koodimonni-language/fi
vendor
vendor:koodimonni-language
type
type
type:wordpress-language
目标
文件
object-cache.php
示例:WordPress多语言和Drop-in文件部署
以下是一个简化的
composer.json
koodimonni/composer-dropin-installer
<pre class="brush:php;toolbar:false">{ "require": { "koodimonni/composer-dropin-installer": "*", "koodimonni-language/fi": "*", // 芬兰语核心语言包 "koodimonni-language/et": "*", // 爱沙尼亚语核心语言包 "wpackagist-plugin/wp-redis": "*", // 假设此插件包含object-cache.php "wpackagist-plugin/wordpress-mu-domain-mapping": "*" // 假设此插件包含sunrise.php }, "extra": { "dropin-paths": { "htdocs/wp-content/languages/": [ "type:wordpress-language" // 将所有wordpress-language类型的包移动到这里 ], "htdocs/wp-content/languages/plugins/": [ "vendor:wordpress-plugin-language" // 将所有插件语言包移动到这里 ], "htdocs/wp-content/languages/themes/": [ "vendor:wordpress-theme-language" // 将所有主题语言包移动到这里 ], "htdocs/wp-content/": [ "package:wpackagist-plugin/wp-redis:object-cache.php", // 精确移动wp-redis的object-cache.php "package:wpackagist-plugin/wordpress-mu-domain-mapping:sunrise.php", // 精确移动domain-mapping的sunrise.php "type:wordpress-dropin" // 移动所有wordpress-dropin类型的文件 ] }, "wordpress-install-dir": "htdocs/wordpress" // 如果你也在用composer/installers管理WordPress核心 }, "config": { "dropin-installer": "copy" // 默认是移动文件,设置为"copy"则为复制 } }
移动 vs. 复制
默认情况下,
koodimonni/composer-dropin-installer
vendor
composer.json
config
<pre class="brush:php;toolbar:false">"config": { "dropin-installer": "copy" }
自动忽略文件
该插件还会自动忽略一些常见的开发相关文件,如
.DS_store
.git
composer.json
readme.md
license.txt
通过引入
koodimonni/composer-dropin-installer
composer install
composer update
总之,
koodimonni/composer-dropin-installer
以上就是告别项目文件路径冲突:如何使用koodimonni/composer-dropin-installer实现精准文件部署的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号