mirror of
https://github.com/stancl/tenancy-docs.git
synced 2025-12-12 02:04:03 +00:00
86 lines
No EOL
1.5 KiB
Markdown
86 lines
No EOL
1.5 KiB
Markdown
---
|
|
title: Writing Storage Drivers
|
|
description: Writing Storage Drivers
|
|
extends: _layouts.documentation
|
|
section: content
|
|
---
|
|
|
|
# Writing Storage Drivers
|
|
|
|
If you don't want to use the provided DB/Redis storage drivers, you can write your own driver.
|
|
|
|
To create a driver, create a class that implements the `Stancl\Tenancy\Contracts\StorageDriver` interface.
|
|
|
|
Here's an example:
|
|
|
|
```php
|
|
<?php
|
|
|
|
namespace App\StorageDrivers\MongoDBStorageDriver;
|
|
|
|
use Stancl\Tenancy\Tenant;
|
|
use Stancl\Tenancy\Contracts\StorageDriver;
|
|
|
|
class MongoDBStorageDriver implements StorageDriver
|
|
{
|
|
public function createTenant(Tenant $tenant): void
|
|
{
|
|
//
|
|
}
|
|
|
|
public function updateTenant(Tenant $tenant): void
|
|
{
|
|
//
|
|
}
|
|
|
|
public function deleteTenant(Tenant $tenant): void
|
|
{
|
|
//
|
|
}
|
|
|
|
public function findById(string $id): Tenant
|
|
{
|
|
//
|
|
}
|
|
|
|
public function findByDomain(string $domain): Tenant
|
|
{
|
|
//
|
|
}
|
|
|
|
public function all(array $ids = []): array
|
|
{
|
|
//
|
|
}
|
|
|
|
public function ensureTenantCanBeCreated(Tenant $tenant): void
|
|
{
|
|
//
|
|
}
|
|
|
|
public function withDefaultTenant(Tenant $tenant)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function get(string $key, Tenant $tenant = null)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function getMany(array $keys, Tenant $tenant = null)
|
|
{
|
|
//
|
|
}
|
|
|
|
public function put(string $key, $value, Tenant $tenant = null): void
|
|
{
|
|
//
|
|
}
|
|
|
|
public function putMany(array $kvPairs, Tenant $tenant = null): void
|
|
{
|
|
//
|
|
}
|
|
}
|
|
``` |