[英]How to set a different path for composer installer based on components inside a framework
我一直在进行PHP Framework开发,我们希望将组件与核心分离为单独的程序包。 像这样:
vendor /
username/frameworkname /
core/
Namespace /
Core /
..Framework core files here
components/
Namespace /
Component
ComponentOne
ClassOne.php
ClassTwo.php
composer.json
LICENSE.txt
README.md
ComponentTwo
ClassOne.php
ClassTwo.php
ClassThree.php
composer.json
README.md
LICENSE.txt
ComponentHopeYouFotIT!
作曲家需要这样的核心:
composer require name/framework-core
并可以将其安装在
vendor/username/frameworkname/src/core/Namespace/Core/
以及任何类似这样的组件:
composer require name/componentname
并能够将其安装在:
vendor/username/frameworkname/src/components/Namespace/Component/
这样我们就不必为任何新组件创建单独的文件夹,并且可以像这样使用:
use Namespace\Core\CoreClass;
use Namespace\Component\{
ComponentOne\ClassTwo,
ComponentTwo\ClassOne
};
有可能吗
我个人已经尝试过Composer composer / installers,但无法在composer.json中找出正确的设置来完成此操作。
"config": {
"vendor-dir": "vendor/username"
},
"repositories": [
{
"type": "package",
"package": {
"name": "frameworkname/componentname",
"version": "master",
"source": {
"url": "https://github.com/username/componentname",
"type": "git",
"reference": "master"
}
},
"require": {
"composer/installers": "~1.0"
}
}
],
您是否看过Composer Custom Installer文档 ? 它做到了。
tl; dr是您需要创建一个(非常简单的)Composer插件来设置自定义安装位置,并且文档将非常具体地指导您完成操作。
另外:经过对composer/installers
试验,我的感觉是它可能不支持自定义类型,但是可能允许您设置受支持类型的自定义路径。 那就是:如果您想使用WordPress插件,但将其安装在与普通插件不同的位置,则可以覆盖install-paths
,但不一定需要使用composer/installers
来定义自己的类型whooptido-type
并进行自定义安装位置。 我努力强调,这种推论是基于今天上午进行实验的经验经验,而不是实际的文档。 ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.