Laravel Multi Tenant 项目教程
1. 项目的目录结构及介绍
laravel-multi-tenant/
├── config/
│ ├── config.php
├── src/
│ ├── LaravelMultiTenantServiceProvider.php
│ ├── Facades/
│ │ ├── TenantScopeFacade.php
│ ├── Traits/
│ │ ├── TenantScopedModelTrait.php
├── tests/
│ ├── Feature/
│ │ ├── ExampleTest.php
├── .gitattributes
├── .gitignore
├── composer.json
├── LICENSE.md
├── phpunit.xml.dist
├── README.md
目录结构介绍
- config/: 包含项目的配置文件,如
config.php
。 - src/: 包含项目的主要源代码。
- LaravelMultiTenantServiceProvider.php: 服务提供者文件,用于注册和配置服务。
- Facades/: 包含门面类,如
TenantScopeFacade.php
。 - Traits/: 包含模型使用的 trait,如
TenantScopedModelTrait.php
。
- tests/: 包含项目的测试代码。
- Feature/: 包含功能测试文件,如
ExampleTest.php
。
- Feature/: 包含功能测试文件,如
- .gitattributes: Git 属性文件。
- .gitignore: Git 忽略文件。
- composer.json: Composer 依赖管理文件。
- LICENSE.md: 项目许可证文件。
- phpunit.xml.dist: PHPUnit 配置文件。
- README.md: 项目说明文件。
2. 项目的启动文件介绍
LaravelMultiTenantServiceProvider.php
namespace AuraIsHere\LaravelMultiTenant;
use Illuminate\Support\ServiceProvider;
class LaravelMultiTenantServiceProvider extends ServiceProvider
{
public function boot()
{
// 发布配置文件
$this->publishes([
__DIR__.'/../config/config.php' => config_path('laravel-multi-tenant.php'),
]);
}
public function register()
{
// 注册服务
$this->app->singleton(TenantScope::class, function ($app) {
return new TenantScope();
});
// 注册门面
$this->app->alias(TenantScope::class, 'tenant-scope');
}
}
启动文件介绍
- LaravelMultiTenantServiceProvider.php: 该文件是项目的服务提供者,负责注册和配置服务。
boot()
方法用于发布配置文件,register()
方法用于注册服务和门面。
3. 项目的配置文件介绍
config.php
return [
'tenant_column' => 'company_id',
// 其他配置项
];
配置文件介绍
- config.php: 该文件包含项目的配置项,如
tenant_column
,用于指定租户列的名称。你可以根据需要添加其他配置项。
通过以上步骤,你可以了解 laravel-multi-tenant
项目的基本结构、启动文件和配置文件。希望这篇教程对你有所帮助!