atol-online/README.md

4.5 KiB
Raw Blame History

АТОЛ Онлайн

Библиотека для фискализации чеков по 54-ФЗ через облачные ККТ АТОЛ.

GitHub Workflow Status (master) codecov Stable Version Packagist PHP Version Support License buymeacoffee

Документация

Текущие поддерживаемые версии АТОЛ Онлайн:

Протокол API ФФД Статус
v4 5.10 1.05 Поддерживается
v5 3.0 1.2 В планах

Поддерживаемые возможности:

  • Мониторинг ККТ и ФН
  • Фискализация документов на облачной ККТ
  • Валидация данных до отправки документа на ККТ (насколько это возможно, согласно схеме)
  • Расчёты денег в копейках
  • PSR-4 автозагрузка, покрытие настоящими тестами, fluent-setters, докблоки

Системные требования

  • php v8.1 и выше
  • php-json
  • php-mbstring
  • composer

Начало работы

Подключение библиотеки

  1. Подключить пакет к проекту:
    composer require axenov/atol-online
    
  2. В нужном месте проекта подключить автозагрузчик composer-зависимостей, если это не сделано ранее:
    require($project_root . '/vendor/autoload.php');
    
    где $project_root — абсолютный путь к корневой директории вашего проекта.

    При использовании фреймворков это обычно не требуется.

Использование библиотеки

Вы имеете право использовать и распространять код на условиях лицензии MIT.

Дополнительная информация может быть найдена здесь:

  1. Документации к библиотеке
  2. Документация АТОЛ Онлайн
  3. Исходный код, докблоки
  4. Тесты

Тестирование кода библиотеки

Файлы тестов находятся в директории /tests корня репозитория.

Для запуска тестов необходимо перейти в корень репозитория и выполнить одну из команд:

composer psalm    # статический анализ
composer phpcs    # синтаксический анализ
composer test     # полное тестирование без покрытия
composer coverage # полное тестирование с покрытием

После тестирования с покрытием в корне репозитория создаётся отчёт, который сохраняется в директории .coverage. Для тестирования с покрытием необходим php-xdebug с параметром xdebug.mode = coverage,....

TODO

  • Поддержка логирования через psr/log (psr-3)
  • Поддержка кеширования через psr/cache (psr-6)
  • Поддержка сторонних клиентов через psr/http-client (psr-18), отвязка от Guzzle
  • События
  • Поддержка ФФД 1.2 (разделение версий библиотеки по веткам?)
  • ...