socialengine/composer-symlinker

一个将软件包安装为本地符号链接的Composer插件

安装次数: 640 511

依赖者: 1

建议者: 0

安全: 0

星标: 3

关注者: 6

分支: 6

类型:composer-plugin

1.0.3 2015-10-26 23:48 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:42:49 UTC


README

Composer插件允许您以本地符号链接的形式安装软件包,并提供回退到其他安装选项的选项。这允许您并行本地开发和其依赖项。

这已被讨论为Composer的可能改进,但进展缓慢。例如,参见Composer问题#1299#4011

这是基于piwi/composer-symlinker的一个分支,并做了一些增强。具体如下:

  • 允许使用相对路径(如果您在虚拟机中开发但同时在宿主机器上编辑代码,这将非常有帮助)
  • 如果找不到本地软件包,将回退到其他安装选项。
  • 允许其他安装程序提供正确的安装路径。(当使用安装到非供应商位置的软件包时很有用)

设置

首先,将插件添加为您的composer.json中的依赖项

"socialengine/composer-symlinker": "~1.0"

接下来,在您的composer.jsonextra部分中定义软件包的本地路径。您有两种方法声明路径:

  • local-dirs:列出要查找软件包的目录。在扫描时,这些路径将与vendor/package结合。
  • local-packages:一个键值对象,其中键是软件包名称,值是该软件包的路径。路径可以是相对于composer.json的。

如果您想限制要扫描的本地供应商,可以添加一个local-vendors列表。

如果找不到本地软件包,插件将回退到其他安装方法(如packagist/git)。

示例额外部分

"extra": {
    "local-dirs": [
        "/my/absolute/local/path1",
        "../../relative/local/path2"
    ],
    "local-vendors": [
        "vendor1",
        "vendor2"
    ],
    "local-packages": {
        "vendor/package1": "/my/absolute/path/to/vendor/package1",
        "vendor/package2": "../relative/path/to/vendor/package2"
    }
}

示例设置

假设我们想基于三个依赖项(MyPackage1MyPackage2是我们的一些软件包,另一个是第三方ExternalPackage)来开发一个名为MyProject的项目。

此外,MyPackage1位于/opt/php/MyVendor/MyPackage1,而MyPackage2可以在../my-package-2找到。

我们可以这样配置我们的composer.json

"require": {
    "MyVendor/MyPackage1": "3.6.1",
    "MyVendor/MyPackage2": "0.10",
    "OtherVendor/ExternalPackage": "2.4.6"
},
"require-dev": {
    "socialengine/composer-symlinker": "~1.0"
},
"extra": {
    "local-dirs": "/opt/php/",
    "local-packages": {
        "MyVendor/MyPackage2": "../my-package-2"
    }
}

因此,当在我们的本地环境中开发时,composer install将安装我们的软件包,并将它们安装到相应的路径作为符号链接。如果在路径无效的盒子中使用相同的composer.json,软件包将按正常方式安装。

Windows用户警告

该插件使用内部symlink() PHP函数。请参阅手册中关于Windows的限制。

许可证

本软件根据MIT许可证发布。