italiavainrete/multitenancy-utils-laravel

一套用于IVR多租户系统的实用工具集

v0.3.7 2024-08-29 07:34 UTC

This package is auto-updated.

Last update: 2024-09-29 07:51:35 UTC


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)。有关更多信息,请参阅 许可文件