Skip to content

An implementation of Telegram's TDLib in PHP using FFI extension

License

Notifications You must be signed in to change notification settings

thisismzm/tdlib-php-ffi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TDLib PHP FFI

An implementation of Telegram's TDLib in PHP by FFI extension

Docs

Create an instance

/**
* @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.

/**
 * @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.

/**
 * @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.

/**
 * @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".

/**
* @param string $request JSON-serialized request to TDLib.
* 
* @return string|null JSON-serialized null-terminated request response.
*/
public function execute(string $request): ?string