Download the PHP package idynsys/synced-module without Composer
On this page you can find all versions of the php package idynsys/synced-module. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package synced-module
kafka-synced
Установка
Используйте composer для установки
-
- в случае возниковения проблем с зависимостями необходимо использовать ключ -W
composer req idynsys/synced-module -W
- для работы пакета необходимо установить ext-kafka
- в случае возниковения проблем с зависимостями необходимо использовать ключ -W
#
Установка (общее)
-
необходимо добавить в app.php
Ids\Modules\Synced\Providers\SyncedServiceProvider::class
-
Добавим файл конфига
php artisan vendor:publish --tag=synced-config
-
Запустить php artisan vendor:publish --tag=laravel-kafka-config php artisan vendor:publish --provider="Ids\Modules\Synced\SyncedServiceProvider"
После, необходимо сконфигурировать kafka.php (если не настроен или ранее mateusjunges/laravel-kafka) см. https://junges.dev/documentation/laravel-kafka/v1.8/3-installation-and-setup необходимые мин ENV для добавления в .env:
KAFKA_BROKERS: localhost:9092 KAFKA_CONSUMER_GROUP_ID: 'group'
- после настройки брокера и добавления в .env, необходимо убедиться в доступности брокера kafka по сети (для docker compose необходимо настроить общую сеть)
#
Добавление модели для отправки в кафку
- Для добавления модели необходимо
- Добавить интерфейс SyncedModelInterface и трейт (для отслеживания изменение модели)
- Зарегистрировать события в конструкторе
- Реализовать методы:
где RouteKey должен определить название назначение сущности, SyncedAttributes должне вернуть массив данных передаваемый для обмена, Topics - набор топиков которые мы будем использовать для трансфера дополнительно
Полный пример
#
Добавление consumer для чтения изменений
- Для получения изменений на стороне клиента необходимо реализовать класс репозитория с интерфейсом SyncedRepositoryInterface:
createByKafka - создание записи updateByKafka - обновление deleteByKafka - удаление
и сконфигурировать репозитории в файле synced.php:
Далее, достаточно просто, запустить коньсьюмер командой:
php artisan synced:consume:entity
- название команды можно изменить в synced.php в параметре
command-signature
All versions of synced-module with dependencies
ext-json Version *
ext-rdkafka Version *
mateusjunges/laravel-kafka Version ^1.10