https://github.com/thisismzm/tdlib-php-ffi
An implementation of Telegram's TDLib in PHP using FFI extension
https://github.com/thisismzm/tdlib-php-ffi
tdlib tdlib-php telegram-client telegram-php telegram-php-client telegram-tdlib
Last synced: 29 days ago
JSON representation
An implementation of Telegram's TDLib in PHP using FFI extension
- Host: GitHub
- URL: https://github.com/thisismzm/tdlib-php-ffi
- Owner: thisismzm
- License: mit
- Created: 2022-06-05T12:04:22.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-02-06T10:40:00.000Z (4 months ago)
- Last Synced: 2026-04-13T15:07:04.061Z (about 2 months ago)
- Topics: tdlib, tdlib-php, telegram-client, telegram-php, telegram-php-client, telegram-tdlib
- Language: PHP
- Homepage:
- Size: 4.88 KB
- Stars: 22
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-tdlib - thisismzm/tdlib-php-ffi
README
# TDLib PHP FFI
An implementation of Telegram's TDLib in PHP by FFI extension
## Docs
### Create an instance
```php
/**
* @param string|null $tdlibFilePath A file path/name to `libtdjson.so` library
*/
public function __construct(string $tdlibFilePath)
```
### Create client id
Returns an opaque identifier of a new TDLib instance.
The TDLib instance will not send updates until the first request is sent to it.
```php
/**
* @return int an opaque identifier of a new TDLib instance
*/
public function createClientId(): int
```
### Send request
Sends request to the TDLib client.
May be called from any thread.
```php
/**
* @param int $clientId TDLib client id
* @param string $request $request JSON-serialized request to TDLib.
*
* @return void
*/
public function send(int $clientId, string $request): void
```
### Receive response and updates
Receives incoming updates and request responses.
Must not be called simultaneously from two different threads.
```php
/**
* @param int $timeout The maximum number of seconds allowed for this function to wait for new data
*
* @return string|null incoming update or request response or may be null if the timeout expires.
*/
public function receive(int $timeout): ?string
```
### Synchronously executes a request
Synchronously executes a TDLib request.
A request can be executed synchronously, only if it is documented with "Can be called synchronously".
```php
/**
* @param string $request JSON-serialized request to TDLib.
*
* @return string|null JSON-serialized null-terminated request response.
*/
public function execute(string $request): ?string
```
## 💜 Support this project
If this project saves you time or money, consider supporting its development.
**Crypto donations:**
- Toncoin (TON): `UQCI2hg2r7TV9xFS-4H6uRlySPRkYUlEVQm-BDhlPAAaVpfb`
Thank you for supporting open-source ❤️