Link
in package
Telegram and documentation link builders.
Port of upstream aiogram/utils/link.py.
Docs URL note: the upstream project points at https://docs.aiogram.dev/en/dev-3.x/.
This PHP port has no published docs site yet, so the constant mirrors the upstream
URL verbatim. Update BASE_PAGE_URL once a dedicated docs site is available.
API design note: PHP does not allow a non-variadic parameter to follow a variadic
one, so we accept explicit array $path for path segments instead of string ...$path.
Call sites pass the path as an array literal:
Link::createTelegramLink(['mybot'], ['start' => 'abc']) Link::createTelegramLink(['mybot', 'myapp']) Link::docsUrl(['handlers'], fragment: 'section')
Table of Contents
Constants
- BASE_DOCS_URL : mixed = 'https://docs.aiogram.dev/'
- BASE_PAGE_URL : mixed = self::BASE_DOCS_URL . 'en/' . self::BRANCH . '/'
- BRANCH : mixed = 'dev-3.x'
Methods
- createTelegramLink() : string
- Build an `https://t.me/...` URL.
- createTgLink() : string
- Build a `tg://` deep-link URL.
- docsUrl() : string
- Build a documentation URL relative to the configured docs base.
- __construct() : mixed
- formatUrl() : string
- Build a URL from a base, optional path segments, fragment, and query params.
Constants
BASE_DOCS_URL
private
mixed
BASE_DOCS_URL
= 'https://docs.aiogram.dev/'
BASE_PAGE_URL
private
mixed
BASE_PAGE_URL
= self::BASE_DOCS_URL . 'en/' . self::BRANCH . '/'
BRANCH
private
mixed
BRANCH
= 'dev-3.x'
Methods
createTelegramLink()
Build an `https://t.me/...` URL.
public
static createTelegramLink([array<int, string> $path = [] ][, array<string, int|string> $query = [] ]) : string
Link::createTelegramLink(['mybot'], ['start' => 'abc']) Link::createTelegramLink(['mybot', 'myapp']) Link::createTelegramLink()
Parameters
- $path : array<int, string> = []
-
URL path segments
- $query : array<string, int|string> = []
-
optional query parameters
Return values
stringcreateTgLink()
Build a `tg://` deep-link URL.
public
static createTgLink(string $link[, array<string, int|string> $query = [] ]) : string
Parameters
- $link : string
- $query : array<string, int|string> = []
-
optional query parameters
Return values
stringdocsUrl()
Build a documentation URL relative to the configured docs base.
public
static docsUrl([array<int, string> $path = [] ][, null|string $fragment = null ][, array<string, int|string> $query = [] ]) : string
Link::docsUrl(['handlers'], fragment: 'section') Link::docsUrl(['search'], query: ['q' => 'router']) Link::docsUrl()
Parameters
- $path : array<int, string> = []
-
URL path segments appended to the base docs URL
- $fragment : null|string = null
-
optional URL fragment (after
#) - $query : array<string, int|string> = []
-
optional query parameters
Return values
string__construct()
private
__construct() : mixed
formatUrl()
Build a URL from a base, optional path segments, fragment, and query params.
private
static formatUrl(string $base[, array<int, string> $path = [] ][, string|null $fragment = null ][, array<string, int|string> $query = [] ]) : string
Parameters
- $base : string
- $path : array<int, string> = []
- $fragment : string|null = null
- $query : array<string, int|string> = []