Download the PHP package rekryt/tbank-lib without Composer

On this page you can find all versions of the php package rekryt/tbank-lib. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package tbank-lib

rekryt/tbank-lib

Асинхронная PHP-библиотека для T-Invest API на AMPHP v3 и Revolt Event Loop.

Весь публичный API брокера — 109 unary-методов и 7 стримов — доступен типизированными вызовами. Заявка, портфель и котировка приезжают не массивом, а объектом: PostOrderResponse, PortfolioResponse, Quotation. Деньги считаются целыми числами в нано-долях, без float.

Возможности

Unary-методы 9 сервисов, 109 методов с развёрнутыми параметрами и именованными аргументами
Стримы биржевой, заявки и портфель по WebSocket: переподключение, восстановление подписок, сторожевой таймер
Справочник InstrumentRegistry — поиск по uid, figi, тикеру и positionUid за O(1) с ленивой догрузкой
Лимиты иерархические token bucket-ы «метод → сервис → глобальные 50/с», без sleep
Повторы экспоненциальный backoff с джиттером; торговые поручения повторяются только с ключом идемпотентности
Ошибки каталог из 175 кодов T-Invest API, разложенный по дереву исключений
Деньги Quotation и MoneyValue с целочисленной нано-арифметикой и округлением до шага цены
Асинхронность всё работает в Event Loop: сотня подписок и десяток методов одновременно — один процесс

Требования

Установка

Токен

Токен выпускается в личном кабинете: Инвестиции → Настройки → Токены для API. Подробно — в документации брокера.

Для начала берите токен только на чтение: он не даст выставить заявку даже по ошибке. Токен — это доступ к деньгам, поэтому в репозитории ему не место: держите его в .env и в переменных окружения.

Быстрый старт

Вызов выглядит синхронным, но не блокирует процесс: под ним Event Loop, и пока ответ в пути, работают остальные волокна. Отдельного await не нужно — библиотека сама живёт в цикле.

Обратите внимание: getAccounts() вернёт пустой список, если у токена нет доступа ни к одному счёту, — проверяйте результат перед обращением по индексу.

Стрим

Соединение открывается по первой подписке. Разрыв, переподписку и сторожевой таймер библиотека берёт на себя: приложению остаётся разобрать события.

Подписок больше трёхсот на соединение библиотека не сложит — это лимит брокера; сверх него она сама открывает следующее соединение. StreamMode::Raw отдаёт разобранный JSON без гидрации в DTO: на потоках в сотни тысяч сообщений в секунду это заметно дешевле.

Разворачивать примеры целиком — в examples/streams/.

Справочник инструментов

Промах догружается точечно, одновременные запросы одного инструмента схлопываются в один сетевой вызов, записи живут 12 часов. toArray() и fill() переживают перезапуск процесса.

Примеры

examples/README.md — таблица всех 116 методов API: на каждый метод запускаемый .php и описание .md с входными данными, кодом, настоящим ответом биржи и разбором возможных ошибок.

Рядом с примерами на каждый метод — рукописные сценарии: recipes/ для задач, которые одним методом не решаются: лимиты, повторы, снимок справочника, добор данных после разрыва стрима, несколько токенов, экспортер метрик для Prometheus.

Примеры, меняющие состояние счёта — выставление и отмена заявок, пополнение песочницы, перевод валюты, — без ключа --live останавливаются, не дойдя до сети.

Архитектура

Зависимости идут в одну сторону: Infrastructure → App → Domain. Доменное ядро ничего не знает ни про HTTP, ни про amphp — котировку можно считать в тесте без сети и без Event Loop.

DTO, enum-ы, сервисы и примеры генерируются из снимков OpenAPI в resources/openapi/ (composer generate). Сгенерированный код лежит в репозитории, а CI проверяет, что он не разошёлся со спецификацией. Правьте генератор или снимок, а не выходные файлы.

Решения, которые дороже всего переигрывать, записаны в adr/: REST и WebSocket вместо gRPC, целочисленные деньги, иерархические token bucket-ы, повторы только идемпотентных вызовов. Устройство целиком, границы и обоснования — в BRIEF.md.

Разработка

Гейт Требование
PHPStan level 9, без baseline, 0 ошибок
Psalm errorLevel=1, 0 ошибок
PHP-CS-Fixer PSR-12 + правила .editorconfig
PHPUnit покрытие src/ ≥ 85 % (сейчас 98.8 %)
Бенчмарки бюджеты §7 BRIEF.md

Интеграционный прогон по песочнице (composer test:integration) запускается только при заданном TBANK_SANDBOX_TOKEN — он открывает счёт, пополняет его, выставляет и отменяет заявку и закрывает счёт за собой.

Лицензия

MIT — см. LICENSE.

Библиотека не связана с ПАО «Т-Банк» и разрабатывается независимо. Торговля на бирже сопряжена с риском потери средств; автор не несёт ответственности за решения, принятые вашим кодом.


All versions of tbank-lib with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
ext-json Version *
ext-mbstring Version *
amphp/amp Version ^3.0
amphp/http-client Version ^5.1
amphp/pipeline Version ^1.2
amphp/sync Version ^2.2
amphp/websocket-client Version ^2.0
psr/event-dispatcher Version ^1.0
psr/log Version ^3.0
revolt/event-loop Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rekryt/tbank-lib contains the following files

Loading the files please wait ...