Skip to content

cashcarryshop/synchronizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synchronizer

Latest Stable Scrutinizer License

Эта библиотека позволяет легко синхронизировать самые разные вещи. Он имеет красивый и простой в использовании 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.

About

Синхронизация всего и вся

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages