ibrostudio / composer-custom-directory-installer
v1.2.0
2024-06-20 05:11 UTC
Requires
- php: ^8.2
- composer-plugin-api: ^2.0
Requires (Dev)
- composer/composer: ^2.2.12
- laravel/pint: ^1.13
- mockery/mockery: ^1.6
- pestphp/pest: ^2.33
- pestphp/pest-plugin-type-coverage: ^2.8
- phpstan/phpstan: ^1.10
README
此包基于 Laravel Module Installer 项目,扩展以支持不同类型的包。它允许将独立包安装到自定义目录中,而不是 vendor/
目录。
安装
在您的 主项目 中运行
composer require ibrostudio/composer-custom-directory-installer
在 composer 安装结束时,您需要将包添加到 composer.json 的 "allow-plugins" 部分中。 确认是必须的
配置
在您的 包的 composer.json 中设置以下键
"type": "custom-library", "extra": { "custom-directory-installer": { "directory": "DESTINATION_FOLDER" } }
将 DESTINATION_FOLDER 替换为您想要安装包的主项目根目录下相对路径的目录名称。
示例
"type": "custom-library", "extra": { "custom-directory-installer": { "directory": "themes" } }
用法
只需像平常一样引入您的 composer 包即可
composer require vendor_name/package_name
您的包将被安装到 extra 部分中定义的目录下的 package_name 子目录中。
选项
您的包名称有时可能有前缀或后缀,例如
- vendor_name/theme-package_name
- vendor_name/package_name-theme
- vendor_name/platform-package_name-theme
为了方便和可读性,您可以在额外配置中指定前缀和/或后缀,以排除它们在文件夹名称中的显示
前缀
"name": "vendor_name/theme-my_project", "extra": { "custom-directory-installer": { "directory": "themes", "prefix": "theme-" } }
后缀
"name": "vendor_name/my_project-theme", "extra": { "custom-directory-installer": { "directory": "themes", "suffix": "-theme" } }
两者
"name": "vendor_name/platform-my_project-theme", "extra": { "custom-directory-installer": { "directory": "themes", "prefix": "platform-", "suffix": "-theme" } }
在这三个示例中,包将被安装到 /themes/my_project。
提示: laravel- 和 filament- 是内置前缀,您不需要包含它们。