2017 © Pedro PelĆ”ez
 

library laravel-tenant-subdomain

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

image

dlimars/laravel-tenant-subdomain

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  • Monday, May 21, 2018
  • by dlimars
  • Repository
  • 4 Watchers
  • 19 Stars
  • 41 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 6 Forks
  • 0 Open issues
  • 7 Versions
  • 21 % Grown

The README.md

Laravel Tenant SubdomĆ­nio

Build Status Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

Este pacote irÔ auxiliar na organização de clientes em subdomínios usando Laravel., (*2)

Instalação

Adicione no seu composer.json, (*3)

"require": {
    //..
        "dlimars/laravel-tenant-subdomain": "^1.0"
    },

ou execute em seu terminal, (*4)

    composer require dlimars/laravel-tenant-subdomain

adicione o provider e o facade em config/app.php:, (*5)

'providers' => [
    // outros providers
    Dlimars\Tenant\Providers\TenantServiceProvider::class,
],

'aliases' => [
    // outros aliases
    'Tenant' => Dlimars\Tenant\Facades\Tenant::class,
]

adicione o middleware em app/Http/Kernel.php, (*6)

protected $routeMiddleware = [
    // outros middlewares
    'tenant.database' => \Dlimars\Tenant\Middlewares\TenantDatabase::class
];

Após isso, abra seu console e execute: php artisan vendor:publish, modifique o arquivo config/tenant.php para sua necessidade, abra seu arquivo .env e adicione:, (*7)

APP_HOST=domain.com
TENANT_SUBDOMAIN_ARGUMENT=_account_

Uso

para gerar rotas de subdominio, utilize da seguinte forma:, (*8)

// Tenant::getFullDomain() retorna algo como '{_account_}.domain.com'

Route::group(['domain' => Tenant::getFullDomain()], function () {
    Route::get('subdomain-teste/{id}', ['as' => 'subdomain-teste', function($subdomain, $id){
        return route('subdomain-teste', ['123']);
    }]);
});

para gerar rotas para a aplicação principal (que não seja subdominio), utilize da seguinte forma, (*9)

// Tenant::getDomain() retorna algo como 'domain.com'

Route::group(['domain' => Tenant::getDomain()], function () {
    Route::get('domain-teste/{id}', ['as' => 'domain-teste', function($id){
        return route('domain-teste', ['123']);
    }]);
});

// isso impede que rotas do dominio possam ser acessadas atravƩs do subdominio

Carregando as configuraƧƵes de banco de acordo com o subdominio

os arquivos de configurações de banco serão lidos por padrão, dentro da pasta config/tenant, com o exemplo de conteudo:, (*10)

return [
    'driver'    => 'mysql',
    'host'      => 'host',
    'database'  => 'db_subdomain',
    'username'  => 'user_subdomain',
    'password'  => 'user_password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
];

o arquivo é lido e adicionado como conexão padrão tenant, isso é feito via Middleware, em todas as rotas que irão utilizar base de dados própria, use o middleware tenant.database:, (*11)

Route::group(['domain' => Tenant::getFullDomain(), 'middleware' => ['tenant.database']], function () {
    Route::get('domain-teste/{id}', ['as' => 'domain-teste', function($id){
        return route('domain-teste', ['123']);
    }]);
});

Supondo que o usuÔrio acesse http://beltrano.domain.com, a configuração a ser carregada deverÔ estar em /config/tenants/beltrano.php (isso é configurÔvel), (*12)

Criar configuraƧƵes de banco

Para criar uma nova configuração de banco, use da seguinte forma:, (*13)

$config = [
    'foo' => 'bar'
];

Tenant::makeDatabaseConfigFile('foo', $config);

isso irÔ gerar um arquivo dentro de config/tenants com o nome de foo.php (ou como/onde for definido na configuração), com o seguinte conteúdo, (*14)

return [
    'foo' => 'bar'
];

Excluir configuraƧƵes de banco

Para excluir um arquivo de configuração, apenas execute da seguinte maneira:, (*15)

Tenant::dropDatabaseConfigFile('foo');

The Versions

21/05 2018

dev-master

9999999-dev

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

21/05 2018

v1.0.5

1.0.5.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

09/05 2017

v1.0.4

1.0.4.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

06/01 2016

v1.0.3

1.0.3.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

05/01 2016

v1.0.2

1.0.2.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

03/01 2016

v1.0.1

1.0.1.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima

03/01 2016

v1.0.0

1.0.0.0

Pacote para facilitar criação de rotas e troca de banco de dados baseado no subdominio da sua aplicação

  Sources   Download

MIT

The Requires

 

by Daniel Lima