italiavainrete / multitenancy-utils-laravel
一套用于IVR多租户系统的实用工具集
v0.3.7
2024-08-29 07:34 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- ozdemirburak/iris: ^3.1
- spatie/laravel-data: ^4.7
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
README
laravel/multitenancy-utils-laravel
是一个用于简化Laravel应用程序多租户管理的包。它提供工具来处理特定于租户的配置、资产、品牌化等。
安装
要安装此包,请使用composer
composer require laravel/multitenancy-utils-laravel
配置
大多数选项都可以使用 .env
变量进行自定义,但您可以通过以下方式发布配置文件:
php artisan vendor:publish --tag="multitenancy-utils-laravel-config"
这是发布后的配置文件 config/multitenancy-utils-laravel.php
的内容,根据您的需求进行修改
return [ 'tenant_key' => env('TENANT_KEY','italia-va-in-rete'), 'crm-api' => [ 'base_url' => env('CRM_API_BASE_URL', 'https://api.crm.italiavainrete.it') ], 'cache' => [ 'ttl' => env('CACHE_TTL', 600), ], 'colors' => [ 'lighten_percentage' => env('COLORS_LIGHTEN_PERCENTAGE', 40), 'darken_percentage' => env('COLORS_DARKENEN_PERCENTAGE', 15), ], 'cdn' => env('CDN_BASE_URL', 'https://d3vk0yr71svhiq.cloudfront.net/ivr'), ];
使用方法
控制器
提供两个路由来服务特定于租户的Web清单和浏览器配置XML
Route::get('/site.webmanifest', WebManifestController::class)->name('web-manifest'); Route::get('/browserconfig.xml', BrowserConfigXmlController::class)->name('browser-config-xml');
入门
该包旨在简化使用租户品牌数据定义页面样式的一系列常见标签的渲染
视图组件
您可以使用以下由该包提供的视图组件:
x-multi-tenancy::brand-favicons
- 渲染租户favicon元标签。x-multi-tenancy::brand-style
- 渲染租户的样式。x-multi-tenancy::brand-logo
- 显示租户徽标。
完整使用示例
以下是使用组件和共享品牌数据的Blade模板的完整示例
<!DOCTYPE html> <html> <head> <title>{{ $brand->name }} Marketplace</title> <!-- Renders Tenant Favicon meta tags --> <x-multi-tenancy::brand-favicons /> <!-- Render Styles for Tenant --> <x-multi-tenancy::brand-style /> </head> <body class="themed-font antialiased"> <div class="min-h-screen bg-gray-100 dark:bg-gray-900"> <!-- Background Tenant colors --> <header class="bg-primary"> <!-- Tenant Logo --> <x-multi-tenancy::brand-logo /> </header> <main> <!-- Text, Border and Background tenant primary/secondary and semantic colors including light/dark variations --> <h1 class="text-primary border-primary bg-primary-light">Hello World</h1> <p class="text-success border-success bg-success-light">Success!</p> <p class="text-danger border-danger bg-danger-light">Danger!</p> <p class="text-warning border-warning bg-warning-light">Warning!</p> <p class="text-info border-info bg-info-light">Info!</p> </main> </div> </body> </html>
测试
composer test
许可
MIT许可(MIT)。有关更多信息,请参阅 许可文件。