cashcarryshop / synchronizer
Synchronize all kinds of things
1.1.0
2024-06-12 19:17 UTC
Requires
- php: ^8.0
- symfony/event-dispatcher: ^7.0.0
This package is not auto-updated.
Last update: 2024-09-18 20:44:38 UTC
README
Эта библиотека позволяет легко синхронизировать самые разные вещи. Он имеет красивый и простой в использовании API.
Реализация
Библиотека Synchronizer - это всего лишь абстрактная основа. Но доступные конкретные реализации: (только для версии 0.1.0)
Использование
Подключите к своему коду autoload.php
и используйте классы:
namespace Acme\MyApplication; // To create a Synchronizer: use CashCarryShop\Synchronizer\AbstractSynchronizer; use CashCarryShop\Synchronizer\SynchronizerSourceInterface; use CashCarryShop\Synchronizer\SynchronizerTargetInterface; // To make your project compatible with Synchronizer: 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 whatis/synchronizer
Требования
- Ваша версия php должна быть не меньше 8.0
Участие
Если хотите поучавствовать в разработке, пожалуйста, сначала прочитайте CONTRIBUTING.