Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Archtechx/locação


Archtechx/locação


O pacote `archtechx/tenancy` é uma ferramenta flexível e poderosa para implementar multilocação em aplicações Laravel. Aqui estão alguns recursos principais e diferenças em comparação com outros pacotes como `spatie/laravel-multitenancy`:

Principais recursos do `archtechx/tenancy`:

1. Multilocação automática: o pacote configura automaticamente a multilocação sem exigir alterações significativas no código. Ele lida com conexões de banco de dados, caches, sistemas de arquivos, filas e armazenamentos Redis para cada locatário[3].

2. Arquitetura Baseada em Eventos: O pacote usa uma arquitetura orientada a eventos, permitindo personalização e flexibilidade no tratamento de eventos relacionados à locação[3].

3. Locação de banco de dados único ou múltiplo: suporta modelos de locação de banco de dados único e de vários bancos de dados. Para locação de vários bancos de dados, ele fornece características de modelo para definir o escopo dos modelos para o locatário atual[3].

4. Integração com outros pacotes: O pacote se integra perfeitamente com outros pacotes do Laravel, incluindo o Laravel Nova, que pode ser usado para gerenciar recursos de locatários[3].

5. Testabilidade: O pacote foi projetado para ser altamente testável, tornando mais fácil garantir que sua implementação de multilocação seja exaustivamente testada[3].

6. Personalização: O pacote oferece amplas opções de personalização por meio de sua arquitetura baseada em eventos e características de modelo, permitindo que os desenvolvedores o adaptem às suas necessidades específicas[3].

Instalação e início rápido:

1. Instalação: O pacote pode ser instalado usando o Composer: `composer require stancl/tenancy`.

2. Início rápido: o pacote inclui um tutorial de início rápido que orienta você na configuração da locação de vários bancos de dados e na identificação de domínio. Este tutorial está disponível na página de documentação do pacote[4].

Comparação com `spatie/laravel-multitenancy`:

- Configuração automática: Ambos os pacotes oferecem opções de configuração automática, mas `archtechx/tenancy` é mais abrangente em sua configuração automática, lidando com mais aspectos de multilocação imediatamente.
- Arquitetura Baseada em Eventos: `archtechx/tenancy` usa uma arquitetura orientada a eventos, que fornece mais flexibilidade e opções de personalização em comparação com `spatie/laravel-multitenancy`.
- Integração com Outros Pacotes: Ambos os pacotes se integram bem com outros pacotes do Laravel, mas `archtechx/tenancy` é mais explícito em seu suporte a pacotes como o Laravel Nova.
- Testabilidade: Ambos os pacotes são projetados para serem testáveis, mas `archtechx/tenancy` é mais focado na testabilidade e fornece mais ferramentas para garantir testes completos.

Em resumo, `archtechx/tenancy` oferece uma solução mais abrangente e flexível para multilocação no Laravel, com amplas opções de customização e melhor integração com outros pacotes. No entanto, a escolha entre os dois pacotes depende, em última análise, dos requisitos e necessidades específicas do seu projeto.

Citações:
[1] https://stackoverflow.com/questions/74005556/archtechx-tenancy-vs-spatie-laravel-multitenancy
[2] https://github.com/archtechx/tenancy/actions
[3] https://tenancyforlaravel.com
[4] https://tenancyforlaravel.com/docs/v3/quickstart/
[5] https://github.com/stancl/tenancy/releases