Spec-Zone.ru › CakePHP 3.5

Класс RouteBuilder

Предоставляет возможности для построения маршрутов внутри областей.

Предлагает удобный способ построения маршрутов и добавления их в коллекцию маршрутов.

Пространство имен: Cake\Routing
Расположение: Routing/RouteBuilder.php

Краткое описание констант

  • string

    ID
    '[0-9]+'
  • string

    UUID
    '[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}'

Краткое описание свойств

  • $_collection protected
    Cake\Routing\RouteCollection
    Коллекция маршрутов, к которой должны быть добавлены маршруты.
  • $_extensions protected
    array
    Расширения, которые должны быть установлены в подключенные маршруты.
  • $_namePrefix protected
    string
    Префикс имени для подключенных маршрутов.
  • $_params protected
    array
    Параметры области, если таковые имеются.
  • $_path protected
    string
    Префикс пути области, используемый этой коллекцией.
  • $_resourceMap protected static
    array
    Стандартное отображение метода HTTP => действия контроллера.
  • $_routeClass protected
    string
    Стандартный класс маршрута, который необходимо использовать, если он не указан в параметрах connect().
  • $middleware protected
    array

    Список middleware, которые добавляются к маршрутам в этом билдере во время создания.

Краткое описание методов

  • __construct() public
    Конструктор
  • _makeRoute() protected
    Создает объект маршрута или возвращает предоставленный объект.
  • _methodRoute() protected
    Помощник для создания маршрутов, которые отвечают только одному методу HTTP.
  • addExtensions() public
    Добавляет дополнительные расширения к уже существующим в текущей области
  • applyMiddleware() public
    Применение middleware к текущей области маршрута.
  • connect() public
    Подключает новый маршрут.
  • delete() public
    Создает маршрут, который отвечает только на запросы DELETE.
  • extensions() public
    Получение или установка расширений в области маршрутизатора.
  • fallbacks() public
    Подключение /:controller и /:controller/:action/* fallback маршрутов.
  • get() public
    Создает маршрут, который отвечает только на запросы GET.
  • getExtensions() public
    Получение расширений в области маршрутизатора.
  • getRouteClass() public
    Получение стандартного класса маршрута.
  • head() public
    Создает маршрут, который отвечает только на запросы HEAD.
  • loadPlugin() public
    Загрузка маршрутов из плагина.
  • middlewareGroup() public
    Применение набора middleware к группе
  • nameExists() public
    Проверка наличия маршрута с заданным именем.
  • namePrefix() public
    Получение/установка префикса имени для этой области.
  • options() public
    Создает маршрут, который отвечает только на запросы OPTIONS.
  • params() public
    Получение имен/значений параметров для этой области.
  • patch() public
    Создает маршрут, который отвечает только на запросы PATCH.
  • path() public
    Получение пути для этой области.
  • plugin() public
    Добавление маршрутов плагина.
  • post() public
    Создает маршрут, который отвечает только на запросы POST.
  • prefix() public
    Добавление маршрутов с префиксом.
  • put() public
    Создает маршрут, который отвечает только на запросы PUT.
  • redirect() public
    Подключает новый перенаправляющий маршрут в маршрутизатор.
  • registerMiddleware() public
    Регистрация middleware с RouteCollection.
  • resources() public
    Генерация маршрутов REST-ресурсов для заданного контроллера(ов).
  • routeClass() public
    Получение или установка стандартного класса маршрута.
  • scope() public
    Создание новой области маршрутизации.
  • setExtensions() public
    Установка расширений в области маршрутизатора.
  • setRouteClass() public
    Установка стандартного класса маршрута.

Подробное описание методов

__construct()source public

__construct( Cake\Routing\RouteCollection $collection , string $path , array $params [] , array $options [] )

Конструктор

Параметры

  • routeClass - Стандартный класс маршрута для использования при добавлении маршрутов.
  • extensions - Расширения для подключения при добавлении маршрутов.
  • namePrefix - Префикс, добавляемый к всем именам маршрутов.
  • middleware - Имена middleware, которые должны быть применены к маршрутам.

Параметры

Cake\Routing\RouteCollection $collection
Коллекция маршрутов, в которую добавляются маршруты.
string $path
Префикс пути области.
array $params optional []
Параметры маршрутизации области.
array $options optional []
Список опций.

_makeRoute()source protected

_makeRoute( string|Cake\Routing\Route\Route $route , array $defaults , array $options )

Создает объект маршрута или возвращает предоставленный объект.

Параметры

string|Cake\Routing\Route\Route $route
Шаблон маршрута или объект маршрута.
array $defaults
Параметры по умолчанию.
array $options
Дополнительные параметры опций.

Возвращает

Cake\Routing\Route\Route

Выбрасывает

InvalidArgumentException
при недействительном классе маршрута или объекте маршрута.
BadMethodCallException
если создаваемый маршрут конфликтует с текущей областью
END_OF_DOCUMENT_MARKER

_methodRoute()source protected

_methodRoute( string $method , string $template , array $target , string $name )

Помощник для создания маршрутов, которые отвечают только одному HTTP-методу.

Параметры

строка $method
Имя HTTP-метода для сопоставления.
строка $template
Шаблон URL для использования.
массив $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым указывает данный маршрут.

строка $name
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

addExtensions()source public

addExtensions( string|array $extensions )

Добавить дополнительные расширения к уже имеющимся в текущем контексте

Параметры

строка|массив $extensions
Одно или несколько расширений для добавления

applyMiddleware()source public

applyMiddleware( ... $names )

Применить middleware к текущему маршруту.

Требуется, чтобы middleware был зарегистрирован через registerMiddleware()

Параметры

... $names
$names Имена middleware, которые нужно применить к текущему контексту.

Возвращает


$this

См. также

\Cake\Routing\RouteCollection::addMiddlewareToScope()

connect()source public

connect( string $route , array $defaults [] , array $options [] )

Подключает новый маршрут.

Маршруты — это способ соединения URL-адресов запросов с объектами в вашем приложении. В основе маршрутов лежит набор или регулярные выражения, используемые для сопоставления запросов с пунктами назначения.

Примеры:

$routes->connect('/:controller/:action/*');

Первый параметр будет использоваться как имя контроллера, а второй — как имя действия. Синтаксис «/*» делает этот маршрут жадным, так что он будет соответствовать запросам, таким как /posts/index, а также запросам, таким как /posts/edit/1/foo/bar.

$routes->connect('/home-page', ['controller' => 'Pages', 'action' => 'display', 'home']);

Выше показано использование значений по умолчанию для параметров маршрута. И предоставление параметров маршрутизации для статического маршрута.

$routes->connect(
  '/:lang/:controller/:action/:id',
  [],
  ['id' => '[0-9]+', 'lang' => '[a-z]{3}']
);

Показывает подключение маршрута с пользовательскими параметрами маршрута, а также предоставляет шаблоны для этих параметров. Шаблоны для параметров маршрутизации не нуждаются в группах захвата, так как для каждого параметра маршрута будет добавлена одна группа захвата.

$options предлагает несколько «специальных» ключей, имеющих специальное значение в массиве $options.

  • routeClass используется для расширения и изменения способа, которым отдельные маршруты анализируют запросы и обрабатывают обратную маршрутизацию, посредством пользовательского класса маршрутизации. Пример: 'routeClass' => 'SlugRoute'
  • pass используется для определения того, какие из параметров маршрута должны быть перемещены в массив pass. Добавление параметра в массив pass удалит его из обычного массива маршрута. Пример: 'pass' => ['slug'].
  • persist используется для определения параметров маршрута, которые должны быть автоматически включены при генерации новых URL-адресов. Вы можете переопределить постоянные параметры, переопределяя их в URL-адресе, или удалить их, установив параметр в значение false. Пример: 'persist' => ['lang']
  • multibytePattern Установите в значение true, чтобы включить поддержку многобайтовых шаблонов в шаблонах параметров маршрута.
  • _name используется для определения конкретного имени для маршрутов. Это может использоваться для оптимизации обратных запросов к маршрутам. Если не определено, для каждого подключенного маршрута будет сгенерировано имя.
  • _ext представляет собой массив расширений файлов, которые будут извлечены из URL-адреса, если они присутствуют. См. \Cake\Routing\RouteCollection::setExtensions().
  • _method Сопоставлять только запросы со специфическими HTTP-глаголами.

Пример использования условия _method:

$routes->connect('/tasks', ['controller' => 'Tasks', 'action' => 'index', '_method' => 'GET']);

Вышеприведенный маршрут будет соответствовать только запросам GET. Запросы POST не будут соответствовать этому маршруту.

Параметры

строка $route
Строка, описывающая шаблон маршрута
массив $defaults опционально []

Массив, описывающий параметры маршрута по умолчанию. Эти параметры будут использоваться по умолчанию и могут предоставить параметры маршрутизации, которые не являются динамическими. См. выше.

массив $options опционально []

Массив, сопоставляющий именованные элементы в маршруте с регулярными выражениями, которым должен соответствовать этот элемент. Также содержит дополнительные параметры, такие как параметры маршрута, которые должны быть перемещены в переданные аргументы, предоставление шаблонов для параметров маршрута и предоставление имени пользовательского класса маршрутизации.

Возвращает

Cake\Routing\Route\Route

Выбрасывает

InvalidArgumentException
BadMethodCallException

delete()source public

delete( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы DELETE.

Параметры

строка $template
Шаблон URL для использования.
массив $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым указывает данный маршрут.

строка $name опционально null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

extensions()source public

extensions( null|string|array $extensions null )

Получить или установить расширения в области действия этого билдера маршрутов.

Будущие маршруты, подключенные через этого билдера, будут иметь примененные расширения. Однако установка расширений не изменяет существующие маршруты.

Устарело

3.5.0 Используйте getExtensions/setExtensions вместо этого.

Параметры

null|строка|массив $extensions опционально null
Расширения для использования или null.

Возвращает

массив|null

fallbacks()source public

fallbacks( string|null $routeClass null )

Подключить /:controller и /:controller/:action/* резервные маршруты.

Это метод-короткая запись для подключения резервных маршрутов в данной области видимости.

Параметры

строка|null $routeClass опционально null

класс маршрута для использования, если не указано, используется по умолчанию routeClass

get()source public

get( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы GET.

Параметры

строка $template
Шаблон URL для использования.
массив $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает данный маршрут.

строка $name опционально null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

getExtensions()source public

getExtensions( )

Получить расширения в области действия этого билдера маршрутов.

Возвращает

массив

getRouteClass()source public

getRouteClass( )

Получить класс маршрута по умолчанию.

Возвращает

строка

head()source public

head( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы HEAD.

Параметры

строка $template
Шаблон URL для использования.
массив $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает данный маршрут.

строка $name опционально null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

loadPlugin()source public

loadPlugin( string $name , string $file 'routes.php' )

Загрузить маршруты из плагина.

Файл маршрутов будет иметь локальную переменную с именем $routes, которая содержит текущий экземпляр RouteBuilder.

Параметры

строка $name
Имя плагина
строка $file опционально 'routes.php'
Файл маршрутов для загрузки. По умолчанию routes.php

Выбрасывает

Cake\Core\Exception\MissingPluginException
Если плагин не загружен.
InvalidArgumentException
Если плагин не имеет файла маршрутов.

middlewareGroup()source public

middlewareGroup( string $name , array $middlewareNames )

Применить набор middleware к группе

Параметры

string $name
Имя группы middleware
array $middlewareNames
Имена middleware

Возвращает


$this

nameExists()source public

nameExists( string $name )

Проверяет, существует ли маршрут с заданным именем.

Параметры

string $name
Имя.

Возвращает

boolean

namePrefix()source public

namePrefix( string|null $value null )

Получить/установить префикс имени для этого области видимости.

Изменение префикса имени изменит только префикс, используемый для маршрутов, подключенных после изменения префикса.

Параметры

string|null $value необязательно null
Значение для установки или null.

Возвращает

string

options()source public

options( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы OPTIONS.

Параметры

string $template
Шаблон URL, который нужно использовать.
array $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.

string $name необязательно null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

params()source public

params( )

Получить имена/значения параметров для этой области видимости.

Возвращает

array

patch()source public

patch( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы PATCH.

Параметры

string $template
Шаблон URL, который нужно использовать.
array $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.

string $name необязательно null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

path()source public

path( )

Получить путь, для которого предназначена эта область видимости.

Возвращает

string

plugin()source public

plugin( string $name , array|callable $options [] , callable|null $callback null )

Добавить маршруты плагина.

Этот метод создает новую область видимости коллекции маршрутов, которая включает соответствующую информацию о плагине.

Имя плагина будет склонено в нижний регистр, чтобы создать путь маршрутизации. Если вам нужен пользовательский путь, используйте опцию path.

Маршруты, подключенные в области видимости, будут иметь соответствующий префикс пути, и будет задан соответствующий ключ маршрутизации плагина.

Параметры

string $name
Имя плагина, для которого нужно создать маршруты
array|callable $options необязательно []
Используемые опции или обратный вызов
callable|null $callback необязательно null

Обратный вызов, который вызывается для построения маршрутов плагина. Требуется только если $options определён.

post()source public

post( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы POST.

Параметры

string $template
Шаблон URL, который нужно использовать.
array $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.

string $name необязательно null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

prefix()source public

prefix( string $name , array|callable $params [] , callable $callback null )

Добавить маршруты с префиксами.

Этот метод создает область видимости коллекции маршрутов, которая включает соответствующую информацию о префиксе.

Параметр $name используется для генерации имени параметра маршрутизации. Например, путь admin приведет к применению 'prefix' => 'admin' ко всем подключенным маршрутам.

Вы можете повторно открыть префикс столько раз, сколько необходимо, а также вложенные префиксы. Вложенные префиксы приведут к значениям префикса, таким как admin/api, что соответствует пространству имен Controller\Admin\Api\.

Если вам нужно иметь префикс с точками, например: '/api/v1.0', используйте ключ 'path' для аргумента $params:

$route->prefix('api', function($route) {
    $route->prefix('v10', ['path' => '/v1.0'], function($route) {
        // Translates to `Controller\Api\V10\` namespace
    });
});

Параметры

string $name
Имя префикса, которое нужно использовать.
array|callable $params необязательно []

Массив значений по умолчанию для маршрутизации, которые нужно добавить к каждому подключенному маршруту. Если у вас нет параметров, этот аргумент может быть обратным вызовом.

callable $callback необязательно null
Обратный вызов для построения маршрутов с префиксами.

Исключения

InvalidArgumentException
Если не передан допустимый обратный вызов

put()source public

put( string $template , array $target , string $name null )

Создать маршрут, который отвечает только на запросы PUT.

Параметры

string $template
Шаблон URL, который нужно использовать.
array $target

Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.

string $name необязательно null
Имя маршрута.

Возвращает

Cake\Routing\Route\Route

redirect()source public

redirect( string $route , array|string $url , array $options [] )

Подключает новый редирект-маршрут в маршрутизатор.

Маршруты перенаправления отличаются от обычных маршрутов, так как они выполняют фактическое перенаправление заголовка, если совпадение найдено. Перенаправление может произойти внутри вашего приложения или перенаправить на внешний ресурс.

Примеры:

$routes->redirect('/home/*', ['controller' => 'posts', 'action' => 'view']);

Перенаправляет /home/* на /posts/view и передает параметры в /posts/view. Использование массива в качестве места назначения редиректа позволяет использовать другие маршруты для определения, куда должна перенаправляться строка URL.

$routes->redirect('/posts/*', 'http://google.com', ['status' => 302]);

Перенаправляет /posts/* на http://google.com со статусом HTTP 302

Опции:

  • status Устанавливает HTTP-статус (по умолчанию 301)
  • persist Передает параметры перенаправляемому маршруту, если это возможно. Это полезно для жадных маршрутов, маршруты, заканчивающиеся на *, являются жадными. Вы можете переназначить URL-адреса и не потерять какие-либо переданные аргументы.

Параметры

string $route
Строка, описывающая шаблон маршрута
array|string $url
URL для перенаправления. Может быть строкой или Cake URL на основе массива
array $options необязательно []

Массив, сопоставляющий именованные элементы маршрута с регулярными выражениями, которым должен соответствовать элемент. Также содержит дополнительные параметры, такие как параметры маршрута, которые нужно перенести в переданные аргументы. А также предоставляет шаблоны для параметров маршрутизации.

registerMiddleware()source public

registerMiddleware( string $name , callable|string $middleware )

Зарегистрировать middleware в RouteCollection.

После регистрации middleware его можно применить к текущей области видимости маршрутизации или любой дочерней области видимости, которая использует ту же RouteCollection.

Параметры

string $name
Имя middleware. Используется при применении middleware к области видимости.
callable|string $middleware
Обратный вызов middleware или имя класса для регистрации.

Возвращает


$this

См. также

\Cake\Routing\RouteCollection
END_OF_DOCUMENT_MARKER

resources()source public

resources( string $name , array|callable $options [] , callable|null $callback null )

Генерировать маршруты REST-ресурсов для заданного(ых) контроллера(ов).

Быстрый способ сгенерировать стандартные маршруты для набора REST-ресурсов (контроллера(ов)).

Использование

Подключить маршруты ресурсов для приложения контроллера:

$routes->resources('Posts');

Подключить маршруты ресурсов для контроллера Comments в плагине Comments:

Router::plugin('Comments', function ($routes) {
  $routes->resources('Comments');
});

Плагины будут создавать маршруты ресурсов с нижним регистром и подчеркиванием. Например: /comments/comments

Подключить маршруты ресурсов для контроллера Articles в префиксе Admin:

Router::prefix('admin', function ($routes) {
  $routes->resources('Articles');
});

Префиксы будут создавать маршруты ресурсов с нижним регистром и подчеркиванием. Например: /admin/posts

Можно создавать вложенные ресурсы, передавая обратный вызов в:

$routes->resources('Articles', function ($routes) {
  $routes->resources('Comments');
});

Вышеуказанное сгенерирует как маршруты ресурсов для /articles, так и для /articles/:article_id/comments. Можно использовать опцию map для подключения дополнительных методов ресурсов:

$routes->resources('Articles', [
  'map' => ['deleteAll' => ['action' => 'deleteAll', 'method' => 'DELETE']]
]);

В дополнение к стандартным маршрутам, это также подключит маршрут для /articles/delete_all. По умолчанию сегмент пути будет соответствовать имени ключа. Можно использовать ключ 'path' внутри определения ресурса для настройки имени пути.

Можно использовать опцию inflect для изменения способа генерации сегментов пути:

$routes->resources('PaymentTypes', ['inflect' => 'dasherize']);

Сгенерирует маршруты типа /payment-types вместо /payment_types

Опции:

  • 'id' - Часть регулярного выражения для сопоставления идентификаторов. По умолчанию соответствует целочисленным значениям и UUID.
  • 'inflect' - Выбрать метод склонения, используемый для имени ресурса. По умолчанию 'underscore'.
  • 'only' - Подключить только указанный список действий.
  • 'actions' - Переопределить имена методов, используемых для подключения действий.
  • 'map' - Дополнительные маршруты ресурсов, которые должны быть подключены. Если определены 'only' и 'map', убедитесь, что сопоставленные методы также находятся в списке 'only'.
  • 'prefix' - Определить префикс маршрутизации для контроллера ресурса. Если текущий контекст определяет префикс, этот префикс будет добавлен к нему.
  • 'connectOptions' - Настраиваемые опции для подключения маршрутов.
  • 'path' - Изменить путь, чтобы он не соответствовал имени ресурса. Например, ArticlesController доступен по адресу /posts

Параметры

string $name
Имя контроллера для подключения маршрутов ресурсов.
array|callable $options необязательно []
Опции для использования при генерации маршрутов REST, или обратный вызов.
callable|null $callback необязательно null

Необязательный обратный вызов, который будет выполнен в вложенном контексте. Вложенные контексты наследуют существующий путь и параметр 'id'.

routeClass()source public

routeClass( string|null $routeClass null )

Получить или установить стандартный класс маршрута.

Устарело

3.5.0 Используйте getRouteClass/setRouteClass вместо этого.

Параметры

string|null $routeClass необязательно null
Имя класса.

Возвращает

string|null

scope()source public

scope( string $path , array|callable $params , callable|null $callback null )

Создать новый контекст маршрутизации.

Созданные с помощью этого метода контексты будут наследовать свойства контекста, к которому они добавляются. Это означает, что и текущий путь, и параметры будут добавлены к предоставленным параметрам.

Параметры

string $path
Путь для создания контекста.
array|callable $params
Либо параметры для добавления к маршрутам, либо обратный вызов.
callable|null $callback необязательно null

Обратный вызов для вызова, который строит маршруты плагина. Требуется только при определении $params.

Исключения

InvalidArgumentException
если нет параметра callable.

setExtensions()source public

setExtensions( string|array $extensions )

Установить расширения в области действия этого создателя маршрутов.

В дальнейшем подключаемые через этого создателя маршруты будут иметь примененные расширения. Однако установка расширений не изменяет существующие маршруты.

Параметры

string|array $extensions
Устанавливаемые расширения.

Возвращает


$this

setRouteClass()source public

setRouteClass( string $routeClass )

Установить стандартный класс маршрута.

Параметры

string $routeClass
Имя класса.

Возвращает


$this

Подробное описание свойств

$_collectionsource

protected Cake\Routing\RouteCollection

Коллекция маршрутов, к которой должны быть добавлены маршруты.

$_extensionssource

protected array

Расширения, которые должны быть установлены для подключенных маршрутов.

[]

$_namePrefixsource

protected string

Префикс имени для подключенных маршрутов.

''

$_paramssource

protected array

Параметры контекста, если они есть.

$_pathsource

protected string

Префикс пути контекста, используемый этой коллекцией.

$_resourceMapsource

protected static array

Стандартное отображение HTTP-метода => действие контроллера.

[
    'index' => ['action' => 'index', 'method' => 'GET', 'path' => ''],
    'create' => ['action' => 'add', 'method' => 'POST', 'path' => ''],
    'view' => ['action' => 'view', 'method' => 'GET', 'path' => ':id'],
    'update' => ['action' => 'edit', 'method' => ['PUT', 'PATCH'], 'path' => ':id'],
    'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':id'],
]

$_routeClasssource

protected string

Стандартный класс маршрута, используемый, если он не указан в опциях connect().

'Cake\Routing\Route\Route'

$middlewaresource

protected array

Список middleware, которые добавляются маршрутам в этом создателе при построении.

[]

© 2005–2018 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.5/class-Cake.Routing.RouteBuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API