Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Архтех/аренда


Архтех/аренда


Пакет `archtechx/tenancy` — это гибкий и мощный инструмент для реализации мультитенантности в приложениях Laravel. Вот некоторые ключевые особенности и отличия от других пакетов, таких как spatie/laravel-multitenancy:

Ключевые особенности `archtechx/tenancy`:

1. Автоматическая мультитенантность. Пакет автоматически устанавливает мультитенантность, не требуя значительных изменений кода. Он обрабатывает подключения к базе данных, кэши, файловые системы, очереди и хранилища Redis для каждого арендатора[3].

2. Архитектура, основанная на событиях: пакет использует архитектуру, управляемую событиями, что обеспечивает настройку и гибкость в обработке событий, связанных с арендой[3].

3. Аренда с одной или несколькими базами данных: поддерживает модели аренды как с одной базой данных, так и с несколькими базами данных. Для аренды с несколькими базами данных он предоставляет характеристики модели для определения области действия модели для текущего арендатора[3].

4. Интеграция с другими пакетами. Пакет легко интегрируется с другими пакетами Laravel, включая Laravel Nova, который можно использовать для управления ресурсами арендатора[3].

5. Тестируемость. Пакет разработан таким образом, чтобы обеспечить высокую степень тестируемости, что упрощает тщательное тестирование вашей многопользовательской реализации[3].

6. Настройка. Пакет предлагает широкие возможности настройки благодаря архитектуре, основанной на событиях, и особенностям модели, что позволяет разработчикам адаптировать его к своим конкретным потребностям[3].

Установка и быстрый запуск:

1. Установка: Пакет можно установить с помощью Composer: `composer require stancl/tenancy`.

2. Краткий старт. В пакет входит краткое руководство, которое поможет вам настроить аренду нескольких баз данных и идентификацию домена. Это руководство доступно на странице документации пакета[4].

Сравнение с `spatie/laravel-multitenancy`:

- Автоматическая установка: оба пакета предлагают варианты автоматической настройки, но «archtechx/tenancy» является более комплексным в своей автоматической настройке, обрабатывая больше аспектов мультиарендности «из коробки».
- Архитектура, основанная на событиях: «archtechx/tenancy» использует архитектуру, управляемую событиями, которая обеспечивает большую гибкость и возможности настройки по сравнению с «spatie/laravel-multitenancy».
- Интеграция с другими пакетами: оба пакета хорошо интегрируются с другими пакетами Laravel, но `archtechx/tenancy` более явно поддерживает такие пакеты, как Laravel Nova.
- Тестируемость: оба пакета предназначены для тестирования, но Archtechx/tenancy больше ориентирован на тестируемость и предоставляет больше инструментов для обеспечения тщательного тестирования.

Таким образом, «archtechx/tenancy» предлагает более комплексное и гибкое решение для мультитенантности в Laravel с обширными возможностями настройки и лучшей интеграцией с другими пакетами. Однако выбор между двумя пакетами в конечном итоге зависит от конкретных требований и потребностей вашего проекта.

Цитаты:
[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