umbrellio/php-table-sync
PHP TableSync
PHP's implementation of the library providing data synchronization between microservices
Installation
composer require umbrellio/php-table-sync
php artisan vendor:publish --tag=config-table-sync
Usage
Let's describe the model that needs to be synchronized using an example User.php
...
User extends Model implements SyncableModel
{
use TableSyncable;
...
public function routingKey(): string
{
return 'users';
}
public function getTableSyncableAttributes(): array
{
return [
'id' => $this->external_id,
'login' => $this->name,
'email' => $this->email,
];
}
...
When the model changes, the data will be sent according to the rules of TableSyncObserver, to get the data you need to run the command table_sync:work
Logging
Logging based on the Monolog package and contains some extensions for it.
- specify the logging channel in
config/table_sync.php
...
'log' => [
'channel' => 'table_sync',
],
...
- and describe this channel in
config/logging.php
...
'table_sync' => [
'driver' => 'stack',
'channels' => ['table_sync_daily', 'influxdb'],
],
'table_sync_daily' => [
'driver' => 'daily',
'formatter' => LineTableSyncFormatter::class,
'formatter_with' => [
'format' => '[%datetime%] %message% - %model% %event%',
],
'path' => storage_path('logs/table_sync/daily.log'),
],
'influxdb' => [
'driver' => 'influxdb',
'measurement' => 'table_sync',
],
...
You can use the built-in LineTableSyncFormatter::class with the available parameters: %datetime% %message% %direction% %model% %event% %routing% %attributes% %exception%
Driver influxdb is an additional option and is not required to add in config
...
'table_sync' => [
'driver' => 'daily',
],
...
Authors
Created by Korben Dallas.
Related Packages
awssat/laravel-sync-migration
Developer tool helps to sync migrations without refreshing the database
23,769
108
swayok/laravel-extended-errors
Extended laravel debug exceptions display (more info) and monolog's html emails...
1,374
1
umbrellio/rollback-missing-migrations
Laravel package for rolling back migrations between different releases
46,239
2
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 4.0.0 | ^8.1 | ^10.0| | MIT | |
| 3.1.3 | ^8.1 | ^10.0| | MIT | |
| 3.1.2 | ^8.1 | ^10.0 | MIT | |
| 3.1.1 | ^8.1 | ^10.0 | MIT | |
| 3.1.0 | ^8.1 | ^10.0 | MIT | |
| 3.0.0 | ^8.1 | ^10.0 | MIT | |
| 2.1.0 | ^8.1 | ^10.0 | MIT | |
| 2.0.0 | ^8.1 | ^10.0 | MIT | |
| 1.6.0 | ^7.3| | ^5.8| | MIT | |
| 1.5.0 | ^7.3| | ^5.8| | MIT | |
| 1.4.3 | ^7.3| | ^5.8| | MIT | |
| 1.4.2 | ^7.3| | ^5.8| | MIT | |
| 1.4.1 | ^7.3| | ^5.8| | MIT | |
| 1.4.0 | ^7.3| | ^5.8| | MIT | |
| 1.3.1 | ^7.3| | ^5.8| | MIT | |
| 1.3.0 | ^7.3| | ^5.8| | MIT | |
| 1.2.3 | ^7.3| | ^5.8| | MIT | |
| 1.2.2 | ^7.3| | ^5.8| | MIT | |
| 1.2.1 | ^7.3| | ^5.8| | MIT | |
| 1.2.0 | ^7.3| | ^5.8| | MIT | |
| 1.1.3 | ^7.3| | ^5.8| | MIT | |
| 1.1.2 | ^7.3| | ^5.8| | MIT | |
| 1.1.1 | ^7.3| | ^5.8| | MIT | |
| 1.1.0 | ^7.3| | ^5.8| | MIT | |
| 1.0.3 | ^7.3| | ^5.8| | MIT | |
| 1.0.2 | ^7.3| | ^5.8| | MIT | |
| 1.0.1 | ^7.3| | ^5.8| | MIT | |
| 1.0.0 | ^7.3| | ^5.8| | MIT |




