rarus/bonus-server-php-sdk


README

Архитектура

  • Библиотека предоставляет сущности бонусного сервера в виде объектов.
  • Обмен данными по сети осуществляется через транспорты, для каждой сущности он свой.
  • С клиентским кодом библиотека взаимодействует с помощью DTO-объектов
  • Транспорт получает и возвращает DTO-объекты или их коллекции.

Структура сущности

\Entity
    \DTO
        Entity.php - DTO-объект сущности
        EntityCollection - типизированая коллекция объектов сущности, наследуется от \SplObjectStorage
        Fabric.php - фабрика сущности 
    \Transport
        \Role
            \Organization
                Transport.php — класс транспорта сущности для роли организация
                Fabric.php - фабрика транспорта сущности            
            \User
                Transport.php — класс транспорта сущности для роли пользователь
                Fabric.php - фабрика транспорта сущности                        
    \Formatters
        Entity.php - класс, отвечающий за представление сущности в нужном виде, по умолчанию - массив

Иерархия исключений

\Exception
    \BonusServerException - корневой тип исключения
        \ApiClientException - ошибки, связанные с логикой работы предметной области
            \NetworkException - ошибки, связанные с передачей данных по сети и работой сервера
        \UnknownException - ошибки, которые не удалось классифицировать и корректно обработать