88 lines
4.7 KiB
Markdown
88 lines
4.7 KiB
Markdown
# АТОЛ Онлайн
|
||
|
||
Библиотека для фискализации чеков по 54-ФЗ через [облачные ККТ АТОЛ](https://online.atol.ru/).
|
||
|
||
[](https://github.com/anthonyaxenov/atol-online/actions/workflows/ci.yml)
|
||
[](https://codecov.io/gh/anthonyaxenov/atol-online)
|
||
[](https://packagist.org/packages/axenov/atol-online)
|
||
[](https://packagist.org/packages/axenov/atol-online)
|
||
[](LICENSE)
|
||
[](https://www.buymeacoffee.com/axenov)
|
||
|
||
**[Документация](/docs/readme.md)**
|
||
|
||
Текущие поддерживаемые версии АТОЛ Онлайн:
|
||
|
||
| Протокол | API | ФФД | Статус |
|
||
|----------|------|------|----------------|
|
||
| v4 | 5.10 | 1.05 | Поддерживается |
|
||
| v5 | 3.0 | 1.2 | В планах |
|
||
|
||
Поддерживаемые возможности:
|
||
|
||
* Мониторинг ККТ и ФН
|
||
* Фискализация документов на облачной ККТ
|
||
* Валидация данных до отправки документа на ККТ (насколько это возможно, согласно схеме)
|
||
* Расчёты денег в копейках
|
||
* PSR-4 автозагрузка, покрытие настоящими тестами, fluent-setters, докблоки
|
||
|
||
## Системные требования
|
||
|
||
* `php v8.1` и выше
|
||
* `php-json`
|
||
* `php-mbstring`
|
||
* [composer](https://getcomposer.org/)
|
||
|
||
> Для использования на php8.0 используйте версии библиотеки до 1.0.2 включительно.
|
||
|
||
## Начало работы
|
||
|
||
### Подключение библиотеки
|
||
|
||
1. Подключить пакет к проекту:
|
||
```bash
|
||
composer require axenov/atol-online
|
||
```
|
||
2. В нужном месте проекта подключить автозагрузчик composer-зависимостей, если это не сделано ранее:
|
||
```php
|
||
require($project_root . '/vendor/autoload.php');
|
||
```
|
||
где `$project_root` — абсолютный путь к корневой директории вашего проекта.
|
||
> При использовании фреймворков это обычно не требуется.
|
||
|
||
### Использование библиотеки
|
||
|
||
Вы имеете право использовать и распространять код на условиях **[лицензии MIT](LICENSE)**.
|
||
|
||
Дополнительная информация может быть найдена здесь:
|
||
|
||
1. [Документации к библиотеке](/docs)
|
||
2. [Документация АТОЛ Онлайн](https://online.atol.ru/lib/)
|
||
3. [Исходный код](/src), докблоки
|
||
4. [Тесты](/tests/AtolOnline/Tests)
|
||
|
||
### Тестирование кода библиотеки
|
||
|
||
Файлы тестов находятся в директории `/tests` корня репозитория.
|
||
|
||
Для запуска тестов необходимо перейти в корень репозитория и выполнить одну из команд:
|
||
|
||
```bash
|
||
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 (разделение версий библиотеки по веткам?)
|
||
* [ ] ...
|