cashcarryshop / synchronizer
Synchronize all kinds of things
2.0.0
2024-12-06 14:43 UTC
Requires
- php: ^8.0
- psr/event-dispatcher: ^1.0.0
Requires (Dev)
- phpstan/phpstan: ^1.12
- squizlabs/php_codesniffer: ^3.10
This package is not auto-updated.
Last update: 2025-06-20 14:25:54 UTC
README
Эта библиотека позволяет легко синхронизировать самые разные вещи. Он имеет красивый и простой в использовании API.
Использование
Подключите к своему коду autoload.php
и используйте классы:
namespace Acme\MyApplication;
use CashCarryShop\Synchronizer\AbstractSynchronizer;
use CashCarryShop\Synchronizer\SynchronizerSourceInterface;
use CashCarryShop\Synchronizer\SynchronizerTargetInterface;
use CashCarryShop\Synchronizer\SynchronizerInterface;
require 'vendor/autoload.php';
Создайте свой синхронизатор:
class ExampleSynchronizer extends AbstractSynchronizer
{
/**
* Синхронизировать
*
* @param array $settings Настройки для синхронизации
*
* @return bool
*/
public function synchronize(array $settings = []): bool
{
/// ... ЛОГИКА ...
return true;
}
/**
* Проверить, поддерживается ли источник
*
* @param SynchronizerSourceInterface $source Источник
*
* @return bool
*/
public function supportsSource(SynchronizerSourceInterface $source): bool
{
return $source instanceof ExampleSource;
}
/**
* Проверить, поддерживается ли цель
*
* @param SynchronizerTargetInterface $target Цель
*
* @return bool
*/
public function supportsTarget(SynchronizerTargetInterface $target): bool
{
return $target instanceof ExampleTarget;
}
}
Создайте источники и цели синхронизатора:
class ExampleSource implements SynchronizerSourceInterface
{
/**
* Создать экземпляр источника
*
* @param array $settings Настройки
*/
public function __construct(array $settings)
{
// ... Сохраняем настройки ...
}
// .. Методы источника ...
}
class ExampleTarget implements SynchronizerTargetInterface
{
/**
* Создать экземпляр цели
*
* @param array $settings Настройки
*/
public function __construct(array $settings)
{
// ... Сохраняем настройки ...
}
// .. Методы цели ...
}
Создайте свой проект, совместимый с синхронизатором:
class Application
{
/**
* Синхронизатор
*
* @var SynchronizerInterface
*/
protected SynchronizerInterface $synchronizer;
/**
* Установить синхронизатор
*
* @param SynchronizerInterface $synchronizer Синхронизатор
*/
public function setSynchronizer(SynchronizerInterface $synchronizer): static
{
$this->synchronizer = $synchronizer;
}
// ...
}
Установка
Через Composer
Install Composer если composer не установлен:
$ curl -sS https://getcomposer.org/installer | php
Установите библиотеку, эта команда установит самую последнюю версию пакета
$ composer require cashcarryshop/synchronizer
Требования
- Ваша версия php должна быть не меньше 8.0