apsg/multisite

laravel 多站功能(多个安装)的包

0.1.0 2019-12-18 18:08 UTC

This package is auto-updated.

Last update: 2024-09-19 05:08:25 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI Status

用于管理同一代码库的多个安装的包。它可以根据“域名”改变视图,但保留后端核心不变。

它还允许您定义特定域的配置。

安装

通过 Composer

composer require apsg/multisite

用法

安装后

将您的域名添加到 .env 文件中,例如:
MULTISITE_DOMAIN=test
添加视图文件夹

为您的域名创建新的视图文件夹

mkdir resources/views/test

就这样!从现在开始,Laravel 的视图引擎将在主视图目录(例如上述示例中的 resources/views/)以及特定域的目录中查找视图文件。

配置文件和辅助工具

该包通过辅助 Facade 提供了一个可以访问特定域配置的接口。可以使用以下命令发布默认配置文件:

php artisan vendor:publish --tag=multisite.config

辅助工具

\Multisite::config('some.key');

将返回与

config('multisite.{current_domain}.some.key');
当前域名辅助工具

要检查当前域名,请使用 Facade 辅助工具

\Multisite::domain();

多站资产

要在您的 webpack.mix.js 中编译资产,请添加类似以下内容:

// ----- MULTISITE -----------------
let domains = [
    'site1',
    'site2'
];

for (let domain of domains) {
    mix.js('resources/assets/js/' + domain + '.js', 'public/js', domain + '.js')
        .sass('resources/assets/sass/' + domain + '.scss', 'public/css', domain + '.css');
}

这将自动搜索 resources/js/{domain}.jsresources/sass/{domain}.scss 文件,并编译它们,分别移动到 public/js/{domain}.jspublic/css/{domain}.css 目录。

然后可以使用该包提供的辅助工具在布局文件中自动加载与域名相关的文件

    <link href="{{ multisite_css() }}" rel="stylesheet">
    <script src="{{ multisite_js() }}"></script>

测试

composer test

许可证

许可证。请参阅许可证文件以获取更多信息。