Commit fe71bc38 by Alexander Makarov

Edited Russian guide sections about caching and autoloading

parent 229b7581
Кэширование Кэширование
======= ==========
Кэширование — это простой и эффективный способ повысить производительность веб-приложения. Сохраняя относительно Кэширование — это простой и эффективный способ повысить производительность веб-приложения. Сохраняя относительно
статичные данные в кэше и извлекая их из кэша, когда потребуется, мы экономим время, затрачиваемое на генерацию статичные данные в кэше и извлекая их из кэша, когда потребуется, мы экономим время, затрачиваемое на генерацию
данных с нуля каждый раз. данных с нуля каждый раз.
Кэширование может использоваться на различных уровнях веб-приложения. На стороне сервера, на более низшем уровне мы Кэширование может использоваться на различных уровнях и в различных местах веб-приложения. На стороне сервера, на более
используем кэширование для хранения основных данных, таких как список последних статьей запрашиваемых из базы данных; низком уровне мы используем кэширование для хранения основных данных, таких как список последних полученных из базы
и на более высоком уровне, кэш может использоваться для хранения фрагментов или целых веб-страниц, например как результат данных статьей. На более высоком уровне кэш может использоваться для хранения фрагментов или целых веб-страниц. Таких,
рендеринга последних статьей. На стороне клиента может использоваться HTTP-кэширование, чтобы сохранить содержимое например, как результат рендеринга последних статьей. На стороне клиента для сохранения содержимого недавно посещенных
недавно посещенных страниц в кэше браузера. страниц в кэше браузера может использоваться HTTP-кэширование.
Yii поддерживает все эти механизмы кэширования: Yii поддерживает все эти механизмы кэширования:
......
Кэширование страниц Кэширование страниц
============ =================
Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже когда эта страница Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже, когда эта страница
будет снова запрошена, сервер вернет её из кэша вместо того что бы генерировать её заново. будет снова запрошена, сервер вернет её из кэша вместо того что бы генерировать её заново.
Кэширование страниц осуществляется при помощи [[yii\filters\PageCache]] и [фильтра действия](structure-filters.md). Кэширование страниц осуществляется при помощи [фильтра действия](structure-filters.md) [[yii\filters\PageCache]] и
Это может быть использовано в классе контроллера как показано ниже: может быть использовано в классе контроллера следующим образом:
```php ```php
public function behaviors() public function behaviors()
...@@ -27,14 +27,14 @@ public function behaviors() ...@@ -27,14 +27,14 @@ public function behaviors()
} }
``` ```
Приведенный выше код устанавливает, что кэширования страницы должно использоваться только для `index` действия; контент Приведённый код задействует кэширование только для действия `index`. Содержимое страницы кешируется максимум на 60 секунд
этой страницы должен быть закэширован не более чем на 60 секунд и должен будет измениться на текущий язык приложения; и варьируется в зависимости от текущего языка приложения. Кэшированная страница должна быть признана просроченной, если
и эта кэшированная страница должна быть признана просроченной, если общее количество постов было изменено. общее количество постов изменилось.
Как вы можете видеть, кэширование страниц очень похоже на [кэширования фрагмента](caching-fragment.md). Оба этих варианта Кэширование страниц очень похоже на [кэширования фрагментов](caching-fragment.md). В обоих случаях поддерживаются параметры
поддерживают параметры: `duration` (продолжительность), `dependencies` (зависимости), `variations` (вариации), и `enabled` `duration` (продолжительность), `dependencies` (зависимости), `variations` (вариации), и `enabled` (включен). Главное
(включения). Их главное отличие заключается в том что кэширования страницы реализована как отличие заключается в том, что кэширование страницы реализовано в виде [фильтра действия](structure-filters.md),
[фильтр действия](structure-filters.md) а кэширования фрагмента как [виджет](structure-widgets.md). а кэширование фрагмента в виде [виджета](structure-widgets.md).
Вы можете использовать [кэширования фрагмента](caching-fragment.md), a также Вы можете использовать вместе [кэширование фрагмента](caching-fragment.md),
[динамический контент](caching-fragment.md#dynamic-content) вместе с кэшированием страницы. [динамическое содержимое](caching-fragment.md#dynamic-content) и кэширование страницы.
Псевдонимы Псевдонимы
======= =========
Псевдонимы используются для представления путей к файлам или для представления URL адресов с целью того, чтобы не приходилось полностью прописывать пути к файлам или полные URL адреса. Псевдонимы используются для обозначения путей к файлам или URL адресов и помогают избежать использования абсолютных путей
Псевдоним должен начинаться со знака '@', чтобы не перепутать его с адресом файла или с URL адресом. или URL в коде. Для того, чтобы не перепутать псевдоним с обыным путём к файлу или URL, должен начинаться с `@`. В Yii
Например псевдоним '@yii' указывает на папку, в которую был установлен Yii framework, а псевдоним '@web' представляет собой базовый, основной URL адрес (base URL) текущего приложения. имеется множество заранее определённых псевдонимов. Например, `@yii` указывает на директорию, в которую был установлен
Yii framework, а `@web` можно использовать для получения базового URL текущего приложения.
Создание псевдонимов <a name="defining-aliases"></a> Создание псевдонимов <a name="defining-aliases"></a>
---------------- ----------------------------------------------
Для создания псевдонима пути к файлу или псевдонима какого либо URL адреса используется метод [[Yii::setAlias()]]. Для создания псевдонима пути к файлу или URL используется метод [[Yii::setAlias()]]:
Пример:
```php ```php
// псевдоним пути к файлу // псевдоним пути к файлу
Yii::setAlias('@foo', '/path/to/foo'); Yii::setAlias('@foo', '/path/to/foo');
// псевдоним URL адреса // псевдоним URL
Yii::setAlias('@bar', 'http://www.example.com'); Yii::setAlias('@bar', 'http://www.example.com');
``` ```
> Примечание: псевдоним пути к файлу или псевдоним URL адреса могут указывать на НЕСУЩЕСТВУЮЩИЙ файл или интернет ресурс. > Примечание: псевдоним пути к файлу или URL *не* обязательно указывает на существующий файл или ресурс.
Если вы создали псевдоним пути, то из него можно вывести производный путь(не вызывая [[Yii::setAlias()]]) с помощью добавления знака '/' с последующим указанием необходимого пути. Псевдонимы, созданные с помощью [[Yii::setAlias()]] называются *корневыми псевдонимами (root aliases)*, тогда как производные псевдонимы называются *производными псевдонимами (derived aliases)*. Используя уже заданный псевдоним вы можете получить на основе него новый без вызова [[Yii::setAlias()]]. Сделать это
Например, `@foo` - это корневой псевдоним, тогда как `@foo/bar/file.php` - это производный псевдоним. можно добавив в его конец `/`, за которым следует один или более сегментов пути. Псевдонимы, определённые при помощи
[[Yii::setAlias()]] являются *корневыми псевдонимами*, в то время как полученные из них называются *производными
псевдонимами*. К примеру, `@foo` является корневым псевдонимом, а `@foo/bar/file.php` — производным.
Вы можете создать новый псевдоним используя ранее созданный псевдоним (независимо от того корневой он или производный): Вы можете задать новый псевдоним используя ранее созданный псевдоним (не важно, корневой он или производный):
```php ```php
Yii::setAlias('@foobar', '@foo/bar'); Yii::setAlias('@foobar', '@foo/bar');
``` ```
Корневые псевдонимы как правило создаются на этапе [предварительной загрузки (bootstrapping)](runtime-bootstrapping.md) stage. Корневые псевдонимы, как правило, создаются на этапе [предварительной загрузки (bootstrapping)](runtime-bootstrapping.md).
Например вы можете вызвать [[Yii::setAlias()]] внутри [входного скрипта (entry script)](structure-entry-scripts.md). Например, вы можете вызвать [[Yii::setAlias()]] в [входном скрипте](structure-entry-scripts.md). Для удобства, в
Для удобства использования, в [приложении (Application)](structure-applications.md) предусмотрено свойство 'aliases' , в которое возможна запись, т.е. вы можете [изменить настройки](concept-configurations.md) вашего приложения как в нижеследующем примере: [приложении (Application)](structure-applications.md) предусмотрено свойство `aliases`, которое можно задать через
[конфигурацию приложения](concept-configurations.md):
```php ```php
return [ return [
...@@ -46,12 +49,11 @@ return [ ...@@ -46,12 +49,11 @@ return [
``` ```
Раскрытие Псевдонимов <a name="resolving-aliases"></a> Преобразование псевдонимов <a name="resolving-aliases"></a>
----------------- ----------------------------------------------------
Метод [[Yii::getAlias()]] раскрывает корневой псевдоним в путь к файлу или в URL, который изначально был скрыт за псевдонимом. Метод [[Yii::getAlias()]] преобразует корневой псевдоним в путь к файлу или URL который этот псевдоним представляет.
Этот же метод используется для раскрытия производных псевдонимов в полный путь. Этот же метод может работать и с производными псевдонимами:
Пример:
```php ```php
echo Yii::getAlias('@foo'); // выведет: /path/to/foo echo Yii::getAlias('@foo'); // выведет: /path/to/foo
...@@ -59,13 +61,13 @@ echo Yii::getAlias('@bar'); // выведет: http://www.example. ...@@ -59,13 +61,13 @@ echo Yii::getAlias('@bar'); // выведет: http://www.example.
echo Yii::getAlias('@foo/bar/file.php'); // выведет: /path/to/foo/bar/file.php echo Yii::getAlias('@foo/bar/file.php'); // выведет: /path/to/foo/bar/file.php
``` ```
При раскрытии производных псевдонимов происходит раскрытие корневого псевдонима, с которого начинался псевдоним. Путь или URL, представленный производным псевдонимом определяется путём замены в нём части, соответствующей корневому
псевдониму, на соответствующий ему путь или URL.
> Примечание: Метод [[Yii::getAlias()]] не проверяет фактическое существование формируемого пути к файлу или URL адреса. > Примечание: Метод [[Yii::getAlias()]] не проверяет фактического существования получаемого пути или URL.
Корневой псевдоним может включать в себя знаки '/'. Метод [[Yii::getAlias()]] Корневой псевдоним может содержать знаки '/'. При этом метод [[Yii::getAlias()]] корректно определит, какая часть
корректно определит какая часть ссылки является корневой. псевдонима является корневой и верно сформирует путь или URL:
Пример:
```php ```php
Yii::setAlias('@foo', '/path/to/foo'); Yii::setAlias('@foo', '/path/to/foo');
...@@ -74,13 +76,15 @@ Yii::getAlias('@foo/test/file.php'); // выведет: /path/to/foo/test/file. ...@@ -74,13 +76,15 @@ Yii::getAlias('@foo/test/file.php'); // выведет: /path/to/foo/test/file.
Yii::getAlias('@foo/bar/file.php'); // выведет: /path2/bar/file.php Yii::getAlias('@foo/bar/file.php'); // выведет: /path2/bar/file.php
``` ```
Если не указать `@foo/bar` в качестве корневого псевдонима, последнее выражение выведет `/path/to/foo/bar/file.php`. Если бы `@foo/bar` не является корневым псевдонимом, последняя строка вывела бы `/path/to/foo/bar/file.php`.
Использование псевдонимов <a name="using-aliases"></a> Использование псевдонимов <a name="using-aliases"></a>
------------- ------------------------------------------------
Псевдонимы распознаются во многих частях Yii без необходимости вызова [[Yii::getAlias()]] для раскрытия псевдонимов. Например, [[yii\caching\FileCache::cachePath]] принимает в качестве аргумента как обычный путь к файлу, так и псевдоним, благодаря тому, что псевдонимы начинаются со знака '@'. Псевдонимы распознаются во многих частях Yii без необходимости предварительно вызывать [[Yii::getAlias()]] для
получения пути или URL. Например, [[yii\caching\FileCache::cachePath]] принимает как обычный путь к файлу, так и
псевдоним пути благодаря префиксу `@`, который позволяет их различать.
```php ```php
use yii\caching\FileCache; use yii\caching\FileCache;
...@@ -90,32 +94,33 @@ $cache = new FileCache([ ...@@ -90,32 +94,33 @@ $cache = new FileCache([
]); ]);
``` ```
Для того чтобы узнать, поддерживает ли необходимый вам метод или свойство класса псевдонимы в качестве аргументов обратитесь к документации API. Для того чтобы узнать, поддерживает ли метод или свойство псевдонимы, обратитесь к документации API.
Системные псевдонимы <a name="predefined-aliases"></a> Заранее определённые псевдонимы <a name="predefined-aliases"></a>
------------------ ----------------------------------------------------------
Системные псевдонимы Yii включают в себя часто используемые пути к файлам и URL адреса. В Yii заранее определны псевдонимы для часто используемых путей к файлам и URL:
Список системных псевдонимов Yii:
- `@yii`: папка, в которой находится файл `BaseYii.php` (директория фреймворка). - `@yii`: директория, в которой находится файл `BaseYii.php` (директория фреймворка).
- `@app`: [[yii\base\Application::basePath|base path]] текущего приложения. - `@app`: [[yii\base\Application::basePath|базовый путь]] текущего приложения.
- `@runtime`: [[yii\base\Application::runtimePath|runtime path]] текущего приложения. - `@runtime`: [[yii\base\Application::runtimePath|директория runtime]] текущего приложения.
- `@vendor`: [[yii\base\Application::vendorPath|Composer vendor directory]. - `@vendor`: [[yii\base\Application::vendorPath|директория vendor Composer].
- `@webroot`: папка Web root текущего Web приложения. - `@webroot`: вебрут текущего веб приложения (там где `index.php`).
- `@web`: базовый URL (base URL) текущего приложения. - `@web`: базовый URL текущего приложения.
Псевдоним `@yii` создается при включении файла `Yii.php` во [входной скрипт (entry script)](structure-entry-scripts.md), Псевдоним `@yii` задаётся в момент подключения файла `Yii.php` в [входном скрипте](structure-entry-scripts.md).
остальные псевдонимы создаются в конструкторе приложения в момент применения [конфигурации](concept-configurations.md). Остальные псевдонимы задаются в конструкторе приложения в момент применения [конфигурации](concept-configurations.md).
Псевдонимы расширений <a name="extension-aliases"></a> Псевдонимы расширений <a name="extension-aliases"></a>
----------------- ------------------------------------------------
Для каждого [расширения](structure-extensions.md), устанавливаемого через Composer автоматически создается псевдоним. Для каждого [расширения](structure-extensions.md), устанавливаемого через Composer, автоматически задаётся псевдоним.
Имя псевдонима расширения соответствует корневому пространству имен, которое указано в файле `composer.json` расширения. Данный псевдоним указывает на корневую папку расширения. Его имя соответствует корневому пространству имён расширения в соответствии с его `composer.json`. Псевдоним представляет
Например, если вы установите расширение `yiisoft/yii2-jui`, то для вас автоматически станет доступен псевдоним `@yii/jui`, создание которого будет происходить на этапе [первоначальной загрузки (bootstrapping)](runtime-bootstrapping.md) следующим образом: путь к корневой директории пакета. Например, если вы установите расширение `yiisoft/yii2-jui`, то вам автоматически станет
доступен псевдоним `@yii/jui`. Он создаётся на этапе [первоначальной загрузки (bootstrapping)](runtime-bootstrapping.md)
примерно так:
```php ```php
Yii::setAlias('@yii/jui', 'VendorPath/yiisoft/yii2-jui'); Yii::setAlias('@yii/jui', 'VendorPath/yiisoft/yii2-jui');
......
Автозагрузка классов Автозагрузка классов
================= =================
Для подключения и загрузки классов в Yii используется [автозагрузка классов](http://www.php.net/manual/ru/language.oop5.autoload.php). Автозагрузчик классов в Yii совместим со стандартом автозагрузки [PSR-4](https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md) и работает быстро. Поиск и подключение файлов классов в Yii реализовано при помощи
[автозагрузки классов](http://www.php.net/manual/ru/language.oop5.autoload.php). Фреймворк предоставляет свой быстрый
Автозагрузчик устанавливается когда вы включаете файл `Yii.php` в свой скрипт. совместимый с [PSR-4](https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md)
автозагрузчик, который устанавливается в момент подключения `Yii.php`.
> Примечание: Для простоты повествования мы будем говорить только об автозагрузке классов. Стоит отметить, что нижеприведенный способ может быть применен не только для автозагрузки классов, но и для автозагрузки интерфейсов(interface) и трейтов(traits).
> Примечание: Для простоты повествования, в этом разделе мы будем говорить только об автозагрузке классов. Тем не менее,
всё описанное применимо к интерфейсам и трейтам.
Как использовать автозагрузчик Yii <a name="using-yii-autoloader"></a> Как использовать автозагрузчик Yii <a name="using-yii-autoloader"></a>
------------------------ --------------------------------------------------------------
Для того чтобы воспользоваться автозагрузчиком классов Yii вам нужно соблюсти два правила при создании и именовании классов: При использовании автозагрузчика классов Yii следует соблюдать два простых правила создания и именования классов:
* Каждый класс должен принадлежать определенному пространству имён (прим. `foo\bar\MyClass`). * Каждый класс должен принадлежать пространству имён (то есть `foo\bar\MyClass`).
* Каждый класс должен находиться в отдельном файле, путь к которому будет определяться по следующему правилу: * Каждый класс должен находиться в отдельном файле, путь к которому определятся следующим правилом:
```php ```php
// $className - это полное имя класса, начинающееся с обратного слэша, т.е. \ // $className — это абсолютное имя класса, начинающееся с "\"
$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php'); $classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');
``` ```
Например, если полное имя класса `foo\bar\MyClass`, то [псевдоним пути(alias)](concept-aliases.md) данного файла будет Например, если абсолютное имя класса `foo\bar\MyClass`, то [псевдоним пути](concept-aliases.md) данного файла будет
`@foo/bar/MyClass.php`. Для того, чтобы данный псевдоним превратился в путь файла в файловой системе нужно чтобы либо `@foo` либо `@foo/bar` был [корневым псевдонимом(root alias)](concept-aliases.md#defining-aliases). `@foo/bar/MyClass.php`. Для того, чтобы данный псевдоним можно было преобразовать в путь к файлу, необходимо чтобы
либо `@foo` либо `@foo/bar` являлся [корневым псевдонимом](concept-aliases.md#defining-aliases).
При использовании [простого шаблона приложения (Basic Application Template)](start-basic.md), вы можете хранить свои классы в пространствах имен ниже `app`, тогда вам не понадобится указывать новый псевдоним пути для автозагрузки вашего класса. Это работает потому что При использовании [шаблона приложения basic](start-basic.md) вы можете хранить свои классы в пространстве имён `app`.
`@app` является [системным псевдонимом](concept-aliases.md#predefined-aliases), а такое имя класса как `app\components\MyClass` В этом случае они будут загружаться автоматически без создания нового псевдонима. Это работает потому как `@app`
преобразуется в путь является [заранее определённым псевдонимом](concept-aliases.md#predefined-aliases) и такое имя класса как
`папкавашегоприложения/components/MyClass.php`. `app\components\MyClass` в соответствии с описанным выше алготимом преобразуется в путь
`директорияПриложения/components/MyClass.php`.
В [шаблоне приложения advanced](tutorial-advanced-app.md) каждый уровень приложения обладает собственным корневым
В [шаблоне продвинутого приложения (Advanced Application Template)](tutorial-advanced-app.md), каждый уровень приложения обладает собственным корневым псевдонимом. Например, для front-end части корневым псевдонимом является `@frontend`, а для back-end части `@backend`. Это позволяет включать классы front-end части в пространство имен(namespace) ниже 'frontend', а для back-end части ниже 'backend'. При таком подходе ваши классы будут автоматически загружены автозагрузчиком Yii. псевдонимом. Например, для frontend корневым псевдонимом является `@frontend`, а для backend — `@backend`. Это позволяет
разместить классы frontend в пространство имён `frontend`, а классы backend в пространство имён `backend`. При этом
классы будут загружены автоматически.
Карта классов <a name="class-map"></a> Карта классов <a name="class-map"></a>
--------- ---------------------------------
Автозагрузчик Yii обладает возможностью, которая называется *карта классов*.Эта возможность позволяет указывать где необходимо искать классы в зависимости от имени файла. Автозагрузчик Yii поддерживает *карту классов*. Эта возможность позволяет указать путь к файлу для каждого имени класса.
Прежде чем загрузить файл автозагрузчик проверяет есть ли правила для файла в карте классов. Если файл находится в карте классов, то данный файл будет загружен напрямую без дальнейших проверок. При загрузке класса автозагрузчик проверяет наличие класса в карте. Если он там есть, соответствующий файл будет загружен
Это позволяет существенно ускорить автозагрузку. Все базовые классы Yii загружаются именно этим способом. напрямую без каких-либо дополнительных проверок. Это делает автозагрузку очень быстрой. Все классы самого фреймворка
загружаются именно этим способом.
Пример добавления класса в карту классов `Yii::$classMap`: Вы можете добавить класс в карту `Yii::$classMap` следующим образом:
```php ```php
Yii::$classMap['foo\bar\MyClass'] = 'path/to/MyClass.php'; Yii::$classMap['foo\bar\MyClass'] = 'path/to/MyClass.php';
``` ```
[Псевдонимы](concept-aliases.md) могут быть использованы для указания пути к файлу класса. Карту классов необходимо указать в разделе [загрузки фреймворка](runtime-bootstrapping.md) т.к. карта должна быть создана до того, как будут использованы ваши классы. Для указания путей к файлам классов можно использовать [псевдонимы](concept-aliases.md). Карту классов необходимо
сформировать в процессе [первоначальной загрузки](runtime-bootstrapping.md) так как она должна быть готова до
использования классов.
Использование других автозагрузчиков <a name="using-other-autoloaders"></a> Использование других автозагрузчиков <a name="using-other-autoloaders"></a>
----------------------- ------------------------------------------------------------------
По причине того что Yii использует Composer в качестве менеджера зависимостей, рекомендуется дополнительно установить автозагрузчик Composer. Если вы использует какие то дополнительные библиотеки, в которых есть свои автозагрузчики, то автозагрузчики этих библиотек также нужно будет установить. Так как Yii использует Composer в качестве менеджера зависимостей, рекомендуется дополнительно установить его автозагрузчик.
Если вы используете какие-либо сторонние библиотеки, в которых есть свои автозагрузчики, эти автозагрузчики также необходимо
установить.
В случаях использования дополнительных автозагрузчиков вместе с автозагрузчиком Yii, файл `Yii.php` должен быть подключен *после* установки всех дополнительных автозагрузчиков. В таком случае автозагрузчик Yii будет первым используемым автозагрузчиком из установленных при автозагрузке. Например нижеследующий код взят напрямую из [входного скрипта(entry script)](structure-entry-scripts.md) для [Basic Application Template](start-basic.md). Первая строчка устанавливает автозагрузчик Composer, а вторая устанавливает автозагрузчик Yii. При использовании дополнительных автозагрузчиков файл `Yii.php` должен быть подключен *после* их установки. Это позволит
автозагрузчику Yii первым пробовать загрузить класс. К примеру, приведённый ниже код взят из
[входного скрипта](structure-entry-scripts.md) [шаблона приложения basic](start-basic.md). Первая строка устанавливает
автозагрузчик Composer, а вторая — автозагрузчик Yii:
```php ```php
require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
``` ```
Вы можете использовать автозагрузчик Composer бес использования автозагрузчика Yii. Но в таком случае скорость автозагрузки может уменьшится, также вам нужно будет соблюсти правила автозагрузки для Composer. Вы можете использовать автозагрузчик Composer без автозагрузчика Yii. Однако, скорость автозагрузки в этом случае
может уменьшится. Также вам будет необходимо сдедовать правилам автозагрузчика Composer.
> Информация: Если вы не хотите использовать автозагрузчик Yii, то вам нужно будет создать свою версию файла `Yii.php` > Информация: Если вы не хотите использовать автозагрузчик Yii, создайте свою версию файла `Yii.php`
и подключить его к [входному скрипту(entry script)](structure-entry-scripts.md). и подключите его в [входном скрипте](structure-entry-scripts.md).
Автозагрузка классов расширений <a name="autoloading-extension-classes"></a> Автозагрузка классов расширений <a name="autoloading-extension-classes"></a>
----------------------------- -------------------------------------------------------------------
Автозагрузчик Yii позволяет автоматически загружать классы [расширений](structure-extensions.md). Единственное правило в таком случае - расширение должно правильно указывать раздел 'autoload' в своем файле 'composer.json'. Более подробную информацию о том как правильно указать раздел 'autoload' вы можете узнать в [официальной документации Composer](https://getcomposer.org/doc/04-schema.md#autoload).
Если вы не используете автозагрузчик Yii, то классы расширений могут быть автоматически загружены с помощью автозагрузчика Composer. Автозагрузчик Yii может автоматически загружать классы [расширений](structure-extensions.md) в том случае, если соблюдается
единственное правило. Расширение должно правильно описать раздел 'autoload' в файле 'composer.json'. Более подробно об
этом можно узнать из [официальной документации Composer](https://getcomposer.org/doc/04-schema.md#autoload).
Если вы не используете автозагрузчик Yii, то классы расширений могут быть автоматически загружены с помощью
автозагрузчика Composer.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment