silverstripe/vendor-plugin

允许供应商模块将目录暴露给webroot

安装量: 1,857,688

依赖项: 436

建议者: 0

安全: 0

星标: 5

关注者: 10

分支: 15

开放问题: 6

类型:composer-plugin

2.0.3 2024-06-17 00:50 UTC

README

CI Silverstripe supported module

在将Silverstripe模块安装到供应商目录时,还可能需要确保某些模块资源暴露给webroot,因为默认情况下,'vendor' URL 前缀被阻止从Web访问。

示例

例如,给定以下模块composer.json

{
    "name": "tractorcow/anothermodule",
    "description": "a test module",
    "type": "silverstripe-vendormodule",
    "extra": {
        "expose": [
            "client"
        ]
    },
    "require": {
        "silverstripe/vendor-plugin": "^1.0",
        "silverstripe/framework": "^4.0"
    }
}

这将安装到vendor/tractorcow/anothermodule文件夹中,并在resources/tractorcow/anothermodule/client中创建一个符号链接,允许Web服务器从供应商文件夹中提供服务,而不暴露任何代码或其他内部服务器文件。

注意:模块类型silverstripe-vendormodule是强制性的,因为此行为对于其他类型的库并未启用。

自定义行为

默认情况下,插件将尝试执行符号链接,失败时回退到完整文件系统复制。

如果需要,您可以使用SS_VENDOR_METHOD环境变量(在安装之前设置在您的系统环境中)来强制以下行为之一:

  • none - 禁用所有符号链接/复制
  • copy - 仅执行复制
  • symlink - 仅执行符号链接
  • junction - 使用连接(仅限Windows)
  • auto -> 执行符号链接(或Windows上的连接),但失败时回退到复制。

更新所有暴露的文件夹

可以随时运行自定义composer命令来更新/刷新所有内容

composer vendor-expose [<method>]

您可以将上述方法之一传递进去以强制特定行为,否则将根据之前使用的方法或SS_VENDOR_METHOD环境参数选择默认值。