MadelineProtoDocs/docs/PHP/danog/MadelineProto/Tools.md

711 lines
13 KiB
Markdown

---
title: danog\MadelineProto\Tools: Some tools.
description:
image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
---
# `danog\MadelineProto\Tools`
[Back to index](../../index.md)
> Author: Daniil Gentili <daniil@daniil.it>
Some tools.
## Method list:
* `genVectorHash(array $ints): \int Vector hash`
* `randomInt(int $modulus): int`
* `random(int $length): \string Random string`
* `posmod(int $a, int $b): \int Modulo`
* `unpackSignedInt(string $value): int`
* `unpackSignedLong(string $value): int`
* `unpackSignedLongString(string $value): string`
* `packSignedInt(int $value): string`
* `packSignedLong(int $value): string`
* `packUnsignedInt(int $value): string`
* `packDouble(float $value): string`
* `unpackDouble(string $value): float`
* `wait(\Generator|\Amp\Promise $promise, bool $ignoreSignal): mixed`
* `all((\Generator|\Amp\Promise)[] $promises): \Amp\Promise`
* `any((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
* `some((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
* `first((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
* `timeout(\Generator|\Amp\Promise $promise, int $timeout): \Amp\Promise`
* `timeoutWithDefault(\Amp\Promise|\Generator $promise, int $timeout, mixed $default): \Amp\Promise<\TReturn>|\Amp\Promise<\TReturnAlt>`
* `call(\Generator|\Amp\Promise|mixed $promise): \Amp\Promise`
* `callFork(\Generator|\Amp\Promise $promise, ?\Generator|\Amp\Promise $actual, string $file): \Amp\Promise|mixed`
* `callForkDefer(\Generator|\Amp\Promise $promise): void`
* `rethrow(\Throwable $e, string $file): void`
* `after(\Generator|\Amp\Promise $a, \Generator|\Amp\Promise $b): \Amp\Promise`
* `flock(string $file, int $operation, float $polling, ?\Amp\Promise $token, ?callable $failureCb): \Amp\Promise<?callable>`
* `sleep(int|float $time): \Amp\Promise`
* `readLine(string $prompt): \Amp\Promise<string>`
* `echo(string $string): \Amp\Promise`
* `isArrayOrAlike(mixed $var): bool`
* `arr(mixed $params): array`
* `base64urlDecode(string $data): string`
* `base64urlEncode(string $data): string`
* `rleDecode(string $string): string`
* `rleEncode(string $string): string`
* `inflateStripped(string $stripped): \string JPG payload`
* `end(array $what): mixed`
* `isAltervista(): bool`
* `hasVar(object $obj, string $var): bool`
* `getVar(object $obj, string $var): mixed`
* `setVar(object $obj, string $var, mixed $val): void`
* `toCamelCase(string $input): string`
* `toSnakeCase(string $input): string`
* `markdownEscape(string $hwat): string`
* `typeEscape(string $type): string`
* `methodEscape(string $method): string`
* `getMimeFromExtension(string $extension, string $default): string`
* `getExtensionFromMime(string $mime): string`
* `getExtensionFromLocation(mixed $location, string $default): string`
* `getMimeFromFile(string $file): string`
* `getMimeFromBuffer(string $buffer): string`
## Methods:
### `genVectorHash(array $ints): \int Vector hash`
Generate MTProto vector hash.
Parameters:
* `$ints`: `array` IDs
Return value: Vector hash
### `randomInt(int $modulus): int`
Get random integer.
Parameters:
* `$modulus`: `int` Modulus
### `random(int $length): \string Random string`
Get random string of specified length.
Parameters:
* `$length`: `int` Length
Return value: Random string
### `posmod(int $a, int $b): \int Modulo`
Positive modulo
Works just like the % (modulus) operator, only returns always a postive number.
Parameters:
* `$a`: `int` A
* `$b`: `int` B
Return value: Modulo
### `unpackSignedInt(string $value): int`
Unpack base256 signed int.
Parameters:
* `$value`: `string` base256 int
### `unpackSignedLong(string $value): int`
Unpack base256 signed long.
Parameters:
* `$value`: `string` base256 long
### `unpackSignedLongString(string $value): string`
Unpack base256 signed long to string.
Parameters:
* `$value`: `string` base256 long
### `packSignedInt(int $value): string`
Convert integer to base256 signed int.
Parameters:
* `$value`: `int` Value to convert
### `packSignedLong(int $value): string`
Convert integer to base256 long.
Parameters:
* `$value`: `int` Value to convert
### `packUnsignedInt(int $value): string`
Convert value to unsigned base256 int.
Parameters:
* `$value`: `int` Value
### `packDouble(float $value): string`
Convert double to binary version.
Parameters:
* `$value`: `float` Value to convert
### `unpackDouble(string $value): float`
Unpack binary double.
Parameters:
* `$value`: `string` Value to unpack
### `wait(\Generator|\Amp\Promise $promise, bool $ignoreSignal): mixed`
Synchronously wait for a promise|generator.
Parameters:
* `$promise`: `\Generator|\Amp\Promise` The promise to wait for
* `$ignoreSignal`: `bool` Whether to ignore shutdown signals
#### See also:
* `\Generator`
* `\Amp\Promise`
### `all((\Generator|\Amp\Promise)[] $promises): \Amp\Promise`
Returns a promise that succeeds when all promises succeed, and fails if any promise fails.
Returned promise succeeds with an array of values used to succeed each contained promise, with keys corresponding to the array of promises.
Parameters:
* `$promises`: `(\Generator|\Amp\Promise)[]` Promises
#### See also:
* `\Generator`
* `\Amp\Promise`
### `any((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
Returns a promise that is resolved when all promises are resolved. The returned promise will not fail.
Parameters:
* `$promises`: `(\Amp\Promise|\Generator)[]` Promises
#### See also:
* `\Amp\Promise`
* `\Generator`
### `some((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
Resolves with a two-item array delineating successful and failed Promise results.
The returned promise will only fail if the given number of required promises fail.
Parameters:
* `$promises`: `(\Amp\Promise|\Generator)[]` Promises
#### See also:
* `\Amp\Promise`
* `\Generator`
### `first((\Amp\Promise|\Generator)[] $promises): \Amp\Promise`
Returns a promise that succeeds when the first promise succeeds, and fails only if all promises fail.
Parameters:
* `$promises`: `(\Amp\Promise|\Generator)[]` Promises
#### See also:
* `\Amp\Promise`
* `\Generator`
### `timeout(\Generator|\Amp\Promise $promise, int $timeout): \Amp\Promise`
Create an artificial timeout for any \Generator or Promise.
Parameters:
* `$promise`: `\Generator|\Amp\Promise`
* `$timeout`: `int`
#### See also:
* `\Generator`
* `\Amp\Promise`
### `timeoutWithDefault(\Amp\Promise|\Generator $promise, int $timeout, mixed $default): \Amp\Promise<\TReturn>|\Amp\Promise<\TReturnAlt>`
Creates an artificial timeout for any `Promise`.
If the promise is resolved before the timeout expires, the result is returned
If the timeout expires before the promise is resolved, a default value is returned
Parameters:
* `$promise`: `\Amp\Promise|\Generator` Promise to which the timeout is applied.
Full type:
```
\Amp\Promise<\TReturn>|\TGenerator
```
* `$timeout`: `int` Timeout in milliseconds.
* `$default`: `mixed`
Full type:
```
\TReturnAlt
```
#### See also:
* `\Amp\Promise`
* `\Generator`
* `\TReturn`
* `\TGenerator`
* `\TReturnAlt`
### `call(\Generator|\Amp\Promise|mixed $promise): \Amp\Promise`
Convert generator, promise or any other value to a promise.
Parameters:
* `$promise`: `\Generator|\Amp\Promise|mixed`
Full type:
```
\Generator<mixed, mixed, mixed, \TReturn>|\Amp\Promise<\TReturn>|\TReturn
```
Fully typed return value:
```
\Amp\Promise<\TReturn>
```
#### See also:
* `\Generator`
* `\Amp\Promise`
* `\TReturn`
### `callFork(\Generator|\Amp\Promise $promise, ?\Generator|\Amp\Promise $actual, string $file): \Amp\Promise|mixed`
Call promise in background.
Parameters:
* `$promise`: `\Generator|\Amp\Promise` Promise to resolve
* `$actual`: `?\Generator|\Amp\Promise` Promise to resolve instead of $promise
* `$file`: `string` File
#### See also:
* `\Generator`
* `\Amp\Promise`
### `callForkDefer(\Generator|\Amp\Promise $promise): void`
Call promise in background, deferring execution.
Parameters:
* `$promise`: `\Generator|\Amp\Promise` Promise to resolve
#### See also:
* `\Generator`
* `\Amp\Promise`
### `rethrow(\Throwable $e, string $file): void`
Rethrow error catched in strand.
Parameters:
* `$e`: `\Throwable` Exception
* `$file`: `string` File where the strand started
#### See also:
* `\Throwable`
### `after(\Generator|\Amp\Promise $a, \Generator|\Amp\Promise $b): \Amp\Promise`
Call promise $b after promise $a.
Parameters:
* `$a`: `\Generator|\Amp\Promise` Promise A
* `$b`: `\Generator|\Amp\Promise` Promise B
#### See also:
* `\Generator`
* `\Amp\Promise`
### `flock(string $file, int $operation, float $polling, ?\Amp\Promise $token, ?callable $failureCb): \Amp\Promise<?callable>`
Asynchronously lock a file
Resolves with a callbable that MUST eventually be called in order to release the lock.
Parameters:
* `$file`: `string` File to lock
* `$operation`: `int` Locking mode
* `$polling`: `float` Polling interval
* `$token`: `?\Amp\Promise` Cancellation token
* `$failureCb`: `?callable` Failure callback, called only once if the first locking attempt fails.
#### See also:
* `\Amp\Promise`
### `sleep(int|float $time): \Amp\Promise`
Asynchronously sleep.
Parameters:
* `$time`: `int|float` Number of seconds to sleep for
#### See also:
* `\Amp\Promise`
### `readLine(string $prompt): \Amp\Promise<string>`
Asynchronously read line.
Parameters:
* `$prompt`: `string` Prompt
#### See also:
* `\Amp\Promise`
### `echo(string $string): \Amp\Promise`
Asynchronously write to stdout/browser.
Parameters:
* `$string`: `string` Message to echo
#### See also:
* `\Amp\Promise`
### `isArrayOrAlike(mixed $var): bool`
Check if is array or similar (traversable && countable && arrayAccess).
Parameters:
* `$var`: `mixed` Value to check
### `arr(mixed $params): array`
Create array.
Parameters:
* `$params`: `mixed` Params
### `base64urlDecode(string $data): string`
base64URL decode.
Parameters:
* `$data`: `string` Data to decode
### `base64urlEncode(string $data): string`
Base64URL encode.
Parameters:
* `$data`: `string` Data to encode
### `rleDecode(string $string): string`
null-byte RLE decode.
Parameters:
* `$string`: `string` Data to decode
### `rleEncode(string $string): string`
null-byte RLE encode.
Parameters:
* `$string`: `string` Data to encode
### `inflateStripped(string $stripped): \string JPG payload`
Inflate stripped photosize to full JPG payload.
Parameters:
* `$stripped`: `string` Stripped photosize
Return value: JPG payload
### `end(array $what): mixed`
Get final element of array.
Parameters:
* `$what`: `array` Array
### `isAltervista(): bool`
Whether this is altervista.
### `hasVar(object $obj, string $var): bool`
Checks private property exists in an object.
Parameters:
* `$obj`: `object` Object
* `$var`: `string` Attribute name
### `getVar(object $obj, string $var): mixed`
Accesses a private variable from an object.
Parameters:
* `$obj`: `object` Object
* `$var`: `string` Attribute name
### `setVar(object $obj, string $var, mixed $val): void`
Sets a private variable in an object.
Parameters:
* `$obj`: `object` Object
* `$var`: `string` Attribute name
* `$val`: `mixed` Attribute value
### `toCamelCase(string $input): string`
Convert to camelCase.
Parameters:
* `$input`: `string` String
### `toSnakeCase(string $input): string`
Convert to snake_case.
Parameters:
* `$input`: `string` String
### `markdownEscape(string $hwat): string`
Escape string for markdown.
Parameters:
* `$hwat`: `string` String to escape
### `typeEscape(string $type): string`
Escape type name.
Parameters:
* `$type`: `string` String to escape
### `methodEscape(string $method): string`
Escape method name.
Parameters:
* `$method`: `string` Method name
### `getMimeFromExtension(string $extension, string $default): string`
Get mime type from file extension.
Parameters:
* `$extension`: `string` File extension
* `$default`: `string` Default mime type
### `getExtensionFromMime(string $mime): string`
Get extension from mime type.
Parameters:
* `$mime`: `string` MIME type
### `getExtensionFromLocation(mixed $location, string $default): string`
Get extension from file location.
Parameters:
* `$location`: `mixed` File location
* `$default`: `string` Default extension
### `getMimeFromFile(string $file): string`
Get mime type of file.
Parameters:
* `$file`: `string` File
### `getMimeFromBuffer(string $buffer): string`
Get mime type from buffer.
Parameters:
* `$buffer`: `string` Buffer
---
Generated by [danog/phpdoc](https://phpdoc.daniil.it)