共生体 / laravel-module-installer
Requires
- php: ^8.1
- composer-plugin-api: ^2.0
Requires (Dev)
- composer/composer: ^2.0
- laravel/framework: ^10.0 | ^11.0
- mockery/mockery: ^1.6
- nwidart/laravel-modules: ^10.0 | ^11.0
- phpunit/phpunit: ^11.1
README
此包将Josh Brown的joshbrw/laravel-module-installer进行替换,并是一个向后兼容的扩展版本。
要求
- PHP
^8.1
- Laravel
10+
- Laravel Modules
10+
如果需要支持Laravel / Laravel Modules < ^10.0
,请安装joshbrw/laravel-module-installer。
安装
如果有,请删除任何joshbrw/laravel-module-installer
的痕迹,这两个模块将会冲突。
composer remove joshbrw/laravel-module-installer
composer require symbiont/laravel-module-installer
用法
请确保在你的模块的composer.json
中将type
设置为laravel-module
。
默认情况下,laravel-module
的安装与joshbrw/laravel-module-installer向后兼容,尽管没有必要以-module
结束模块的包名。
唯一的前提是在composer.json
中设置的Laravel模块的type
应该是laravel-module
。如果缺少type
,则此安装程序在需要时将无法由composer执行。
{
"name": "vendor/package-name",
"type": "laravel-module",
"description": "Some vendor package-name",
"keywords": ["vendor", "package-name"],
"etc": "etc"
}
如果type
设置正确,只需使用composer composer require vendor/module-name
来要求laravel模块。
选项
应用程序 composer.json
所有选项都放置在应用程序的composer.json
中的extra
部分的module-installer
键中
{
"extra": {
"module-installer": {
/* options */
}
}
}
选项 | type | 默认值 | |
---|---|---|---|
install-directory | 字符串 | 模块 | 设置模块安装的目录名,默认为Modules |
use-symlinks | 布尔值 | false | 使用符号链接而不是将模块目录从vendor 移动到install-directory |
{
"extra": {
"module-installer": {
"install-directory": "Custom",
"use-symlinks": true
}
}
}
选项install-directory
要更改模块安装的默认Modules
目录,将install-directory
设置为任何自定义目录。
选项use-symlinks
如果设置为true
,则安装的任何Laravel模块都将链接到(默认)Modules
目录,而不是从vendor
目录移动到(默认)Modules
目录,例如:./Modules/SomePackage => ./vendor/some-name/some-package-module
。
包 composer.json
所有选项都放置在模块包的composer.json
中的extra
部分的module-installer
键中
选项 | type | 默认值 | |
---|---|---|---|
module-name | 字符串 | 设置自定义模块名称 | |
include-module-vendor | 布尔值 | false | 在模块目录路径中包含包提供者名称 |
include-module-part | 布尔值 | false | 不删除结尾的-module 并将其作为模块目录路径的一部分 |
{
"extra": {
"module-installer": {
"module-name": "custom-module-name",
"include-module-vendor": true,
"include-module-part": true
}
}
}
选项module-name
默认情况下,此包使用<vendor>/<package-name>
结构作为基础,以确定模块的目录路径。要更改此默认行为,将module-name
键设置为任何自定义名称。
使用"module-name": "custom-module-name"
将导致名为Modules/CustomModuleName
的模块目录路径。
注意
module-name
的值将自动从kebab-case
(仅使用减号(-)分隔符)转换为PascalCase
。
重要!
这也会影响模块的自动加载路径。请确保您设置了正确的路径。
选项include-module-vendor
要包含包提供者名称在模块的目录路径中,将include-module-vendor
设置为true
(默认为false
)。
给定 vendor/some-module
将生成一个模块目录路径,称为 Modules/Vendor/Some
注意
供应商名称将被自动从
kebab-case
(仅使用短横线(-)分隔)转换为PascalCase
。
选项 include-module-part
如果包名称以 -module
结尾,则默认会将其删除。如果需要将 -module
包含在模块目录路径中,将 include-module-part
设置为 true
以将其包含在其路径中。
给定 vendor/some-module
生成一个名为 Modules/SomeModule
的模块目录路径
测试
composer test
作者
- dbf
- Josh Brown