mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-06 14:19:23 +08:00
Edited Russian guide sections about caching and autoloading
This commit is contained in:
@ -1,15 +1,15 @@
|
||||
Кэширование
|
||||
=======
|
||||
==========
|
||||
|
||||
Кэширование — это простой и эффективный способ повысить производительность веб-приложения. Сохраняя относительно
|
||||
статичные данные в кэше и извлекая их из кэша, когда потребуется, мы экономим время, затрачиваемое на генерацию
|
||||
данных с нуля каждый раз.
|
||||
|
||||
Кэширование может использоваться на различных уровнях веб-приложения. На стороне сервера, на более низшем уровне мы
|
||||
используем кэширование для хранения основных данных, таких как список последних статьей запрашиваемых из базы данных;
|
||||
и на более высоком уровне, кэш может использоваться для хранения фрагментов или целых веб-страниц, например как результат
|
||||
рендеринга последних статьей. На стороне клиента может использоваться HTTP-кэширование, чтобы сохранить содержимое
|
||||
недавно посещенных страниц в кэше браузера.
|
||||
Кэширование может использоваться на различных уровнях и в различных местах веб-приложения. На стороне сервера, на более
|
||||
низком уровне мы используем кэширование для хранения основных данных, таких как список последних полученных из базы
|
||||
данных статьей. На более высоком уровне кэш может использоваться для хранения фрагментов или целых веб-страниц. Таких,
|
||||
например, как результат рендеринга последних статьей. На стороне клиента для сохранения содержимого недавно посещенных
|
||||
страниц в кэше браузера может использоваться HTTP-кэширование.
|
||||
|
||||
Yii поддерживает все эти механизмы кэширования:
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
Кэширование страниц
|
||||
============
|
||||
=================
|
||||
|
||||
Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже когда эта страница
|
||||
Кэширование страниц — это кэширование всего содержимого страницы на стороне сервера. Позже, когда эта страница
|
||||
будет снова запрошена, сервер вернет её из кэша вместо того что бы генерировать её заново.
|
||||
|
||||
Кэширование страниц осуществляется при помощи [[yii\filters\PageCache]] и [фильтра действия](structure-filters.md).
|
||||
Это может быть использовано в классе контроллера как показано ниже:
|
||||
Кэширование страниц осуществляется при помощи [фильтра действия](structure-filters.md) [[yii\filters\PageCache]] и
|
||||
может быть использовано в классе контроллера следующим образом:
|
||||
|
||||
```php
|
||||
public function behaviors()
|
||||
@ -27,14 +27,14 @@ public function behaviors()
|
||||
}
|
||||
```
|
||||
|
||||
Приведенный выше код устанавливает, что кэширования страницы должно использоваться только для `index` действия; контент
|
||||
этой страницы должен быть закэширован не более чем на 60 секунд и должен будет измениться на текущий язык приложения;
|
||||
и эта кэшированная страница должна быть признана просроченной, если общее количество постов было изменено.
|
||||
Приведённый код задействует кэширование только для действия `index`. Содержимое страницы кешируется максимум на 60 секунд
|
||||
и варьируется в зависимости от текущего языка приложения. Кэшированная страница должна быть признана просроченной, если
|
||||
общее количество постов изменилось.
|
||||
|
||||
Как вы можете видеть, кэширование страниц очень похоже на [кэширования фрагмента](caching-fragment.md). Оба этих варианта
|
||||
поддерживают параметры: `duration` (продолжительность), `dependencies` (зависимости), `variations` (вариации), и `enabled`
|
||||
(включения). Их главное отличие заключается в том что кэширования страницы реализована как
|
||||
[фильтр действия](structure-filters.md) а кэширования фрагмента как [виджет](structure-widgets.md).
|
||||
Кэширование страниц очень похоже на [кэширования фрагментов](caching-fragment.md). В обоих случаях поддерживаются параметры
|
||||
`duration` (продолжительность), `dependencies` (зависимости), `variations` (вариации), и `enabled` (включен). Главное
|
||||
отличие заключается в том, что кэширование страницы реализовано в виде [фильтра действия](structure-filters.md),
|
||||
а кэширование фрагмента в виде [виджета](structure-widgets.md).
|
||||
|
||||
Вы можете использовать [кэширования фрагмента](caching-fragment.md), a также
|
||||
[динамический контент](caching-fragment.md#dynamic-content) вместе с кэшированием страницы.
|
||||
Вы можете использовать вместе [кэширование фрагмента](caching-fragment.md),
|
||||
[динамическое содержимое](caching-fragment.md#dynamic-content) и кэширование страницы.
|
||||
|
@ -1,39 +1,42 @@
|
||||
Псевдонимы
|
||||
=======
|
||||
=========
|
||||
|
||||
Псевдонимы используются для представления путей к файлам или для представления URL адресов с целью того, чтобы не приходилось полностью прописывать пути к файлам или полные URL адреса.
|
||||
Псевдоним должен начинаться со знака '@', чтобы не перепутать его с адресом файла или с URL адресом.
|
||||
Например псевдоним '@yii' указывает на папку, в которую был установлен Yii framework, а псевдоним '@web' представляет собой базовый, основной URL адрес (base URL) текущего приложения.
|
||||
Псевдонимы используются для обозначения путей к файлам или URL адресов и помогают избежать использования абсолютных путей
|
||||
или URL в коде. Для того, чтобы не перепутать псевдоним с обыным путём к файлу или URL, должен начинаться с `@`. В Yii
|
||||
имеется множество заранее определённых псевдонимов. Например, `@yii` указывает на директорию, в которую был установлен
|
||||
Yii framework, а `@web` можно использовать для получения базового URL текущего приложения.
|
||||
|
||||
|
||||
Создание псевдонимов <a name="defining-aliases"></a>
|
||||
----------------
|
||||
----------------------------------------------
|
||||
|
||||
Для создания псевдонима пути к файлу или псевдонима какого либо URL адреса используется метод [[Yii::setAlias()]].
|
||||
Пример:
|
||||
Для создания псевдонима пути к файлу или URL используется метод [[Yii::setAlias()]]:
|
||||
|
||||
```php
|
||||
// псевдоним пути к файлу
|
||||
Yii::setAlias('@foo', '/path/to/foo');
|
||||
|
||||
// псевдоним URL адреса
|
||||
// псевдоним URL
|
||||
Yii::setAlias('@bar', 'http://www.example.com');
|
||||
```
|
||||
|
||||
> Примечание: псевдоним пути к файлу или псевдоним URL адреса могут указывать на НЕСУЩЕСТВУЮЩИЙ файл или интернет ресурс.
|
||||
> Примечание: псевдоним пути к файлу или URL *не* обязательно указывает на существующий файл или ресурс.
|
||||
|
||||
Если вы создали псевдоним пути, то из него можно вывести производный путь(не вызывая [[Yii::setAlias()]]) с помощью добавления знака '/' с последующим указанием необходимого пути. Псевдонимы, созданные с помощью [[Yii::setAlias()]] называются *корневыми псевдонимами (root aliases)*, тогда как производные псевдонимы называются *производными псевдонимами (derived aliases)*.
|
||||
Например, `@foo` - это корневой псевдоним, тогда как `@foo/bar/file.php` - это производный псевдоним.
|
||||
Используя уже заданный псевдоним вы можете получить на основе него новый без вызова [[Yii::setAlias()]]. Сделать это
|
||||
можно добавив в его конец `/`, за которым следует один или более сегментов пути. Псевдонимы, определённые при помощи
|
||||
[[Yii::setAlias()]] являются *корневыми псевдонимами*, в то время как полученные из них называются *производными
|
||||
псевдонимами*. К примеру, `@foo` является корневым псевдонимом, а `@foo/bar/file.php` — производным.
|
||||
|
||||
Вы можете создать новый псевдоним используя ранее созданный псевдоним (независимо от того корневой он или производный):
|
||||
Вы можете задать новый псевдоним используя ранее созданный псевдоним (не важно, корневой он или производный):
|
||||
|
||||
```php
|
||||
Yii::setAlias('@foobar', '@foo/bar');
|
||||
```
|
||||
|
||||
Корневые псевдонимы как правило создаются на этапе [предварительной загрузки (bootstrapping)](runtime-bootstrapping.md) stage.
|
||||
Например вы можете вызвать [[Yii::setAlias()]] внутри [входного скрипта (entry script)](structure-entry-scripts.md).
|
||||
Для удобства использования, в [приложении (Application)](structure-applications.md) предусмотрено свойство 'aliases' , в которое возможна запись, т.е. вы можете [изменить настройки](concept-configurations.md) вашего приложения как в нижеследующем примере:
|
||||
Корневые псевдонимы, как правило, создаются на этапе [предварительной загрузки (bootstrapping)](runtime-bootstrapping.md).
|
||||
Например, вы можете вызвать [[Yii::setAlias()]] в [входном скрипте](structure-entry-scripts.md). Для удобства, в
|
||||
[приложении (Application)](structure-applications.md) предусмотрено свойство `aliases`, которое можно задать через
|
||||
[конфигурацию приложения](concept-configurations.md):
|
||||
|
||||
```php
|
||||
return [
|
||||
@ -46,12 +49,11 @@ return [
|
||||
```
|
||||
|
||||
|
||||
Раскрытие Псевдонимов <a name="resolving-aliases"></a>
|
||||
-----------------
|
||||
Преобразование псевдонимов <a name="resolving-aliases"></a>
|
||||
----------------------------------------------------
|
||||
|
||||
Метод [[Yii::getAlias()]] раскрывает корневой псевдоним в путь к файлу или в URL, который изначально был скрыт за псевдонимом.
|
||||
Этот же метод используется для раскрытия производных псевдонимов в полный путь.
|
||||
Пример:
|
||||
Метод [[Yii::getAlias()]] преобразует корневой псевдоним в путь к файлу или URL который этот псевдоним представляет.
|
||||
Этот же метод может работать и с производными псевдонимами:
|
||||
|
||||
```php
|
||||
echo Yii::getAlias('@foo'); // выведет: /path/to/foo
|
||||
@ -59,13 +61,13 @@ echo Yii::getAlias('@bar'); // выведет: http://www.example.
|
||||
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
|
||||
Yii::setAlias('@foo', '/path/to/foo');
|
||||
@ -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
|
||||
```
|
||||
|
||||
Если не указать `@foo/bar` в качестве корневого псевдонима, последнее выражение выведет `/path/to/foo/bar/file.php`.
|
||||
Если бы `@foo/bar` не является корневым псевдонимом, последняя строка вывела бы `/path/to/foo/bar/file.php`.
|
||||
|
||||
|
||||
Использование псевдонимов <a name="using-aliases"></a>
|
||||
-------------
|
||||
------------------------------------------------
|
||||
|
||||
Псевдонимы распознаются во многих частях Yii без необходимости вызова [[Yii::getAlias()]] для раскрытия псевдонимов. Например, [[yii\caching\FileCache::cachePath]] принимает в качестве аргумента как обычный путь к файлу, так и псевдоним, благодаря тому, что псевдонимы начинаются со знака '@'.
|
||||
Псевдонимы распознаются во многих частях Yii без необходимости предварительно вызывать [[Yii::getAlias()]] для
|
||||
получения пути или URL. Например, [[yii\caching\FileCache::cachePath]] принимает как обычный путь к файлу, так и
|
||||
псевдоним пути благодаря префиксу `@`, который позволяет их различать.
|
||||
|
||||
```php
|
||||
use yii\caching\FileCache;
|
||||
@ -90,32 +94,33 @@ $cache = new FileCache([
|
||||
]);
|
||||
```
|
||||
|
||||
Для того чтобы узнать, поддерживает ли необходимый вам метод или свойство класса псевдонимы в качестве аргументов обратитесь к документации API.
|
||||
Для того чтобы узнать, поддерживает ли метод или свойство псевдонимы, обратитесь к документации API.
|
||||
|
||||
|
||||
Системные псевдонимы <a name="predefined-aliases"></a>
|
||||
------------------
|
||||
Заранее определённые псевдонимы <a name="predefined-aliases"></a>
|
||||
----------------------------------------------------------
|
||||
|
||||
Системные псевдонимы Yii включают в себя часто используемые пути к файлам и URL адреса.
|
||||
Список системных псевдонимов Yii:
|
||||
В Yii заранее определны псевдонимы для часто используемых путей к файлам и URL:
|
||||
|
||||
- `@yii`: папка, в которой находится файл `BaseYii.php` (директория фреймворка).
|
||||
- `@app`: [[yii\base\Application::basePath|base path]] текущего приложения.
|
||||
- `@runtime`: [[yii\base\Application::runtimePath|runtime path]] текущего приложения.
|
||||
- `@vendor`: [[yii\base\Application::vendorPath|Composer vendor directory].
|
||||
- `@webroot`: папка Web root текущего Web приложения.
|
||||
- `@web`: базовый URL (base URL) текущего приложения.
|
||||
- `@yii`: директория, в которой находится файл `BaseYii.php` (директория фреймворка).
|
||||
- `@app`: [[yii\base\Application::basePath|базовый путь]] текущего приложения.
|
||||
- `@runtime`: [[yii\base\Application::runtimePath|директория runtime]] текущего приложения.
|
||||
- `@vendor`: [[yii\base\Application::vendorPath|директория vendor Composer].
|
||||
- `@webroot`: вебрут текущего веб приложения (там где `index.php`).
|
||||
- `@web`: базовый URL текущего приложения.
|
||||
|
||||
Псевдоним `@yii` создается при включении файла `Yii.php` во [входной скрипт (entry script)](structure-entry-scripts.md),
|
||||
остальные псевдонимы создаются в конструкторе приложения в момент применения [конфигурации](concept-configurations.md).
|
||||
Псевдоним `@yii` задаётся в момент подключения файла `Yii.php` в [входном скрипте](structure-entry-scripts.md).
|
||||
Остальные псевдонимы задаются в конструкторе приложения в момент применения [конфигурации](concept-configurations.md).
|
||||
|
||||
|
||||
Псевдонимы расширений <a name="extension-aliases"></a>
|
||||
-----------------
|
||||
------------------------------------------------
|
||||
|
||||
Для каждого [расширения](structure-extensions.md), устанавливаемого через Composer автоматически создается псевдоним.
|
||||
Имя псевдонима расширения соответствует корневому пространству имен, которое указано в файле `composer.json` расширения. Данный псевдоним указывает на корневую папку расширения.
|
||||
Например, если вы установите расширение `yiisoft/yii2-jui`, то для вас автоматически станет доступен псевдоним `@yii/jui`, создание которого будет происходить на этапе [первоначальной загрузки (bootstrapping)](runtime-bootstrapping.md) следующим образом:
|
||||
Для каждого [расширения](structure-extensions.md), устанавливаемого через Composer, автоматически задаётся псевдоним.
|
||||
Его имя соответствует корневому пространству имён расширения в соответствии с его `composer.json`. Псевдоним представляет
|
||||
путь к корневой директории пакета. Например, если вы установите расширение `yiisoft/yii2-jui`, то вам автоматически станет
|
||||
доступен псевдоним `@yii/jui`. Он создаётся на этапе [первоначальной загрузки (bootstrapping)](runtime-bootstrapping.md)
|
||||
примерно так:
|
||||
|
||||
```php
|
||||
Yii::setAlias('@yii/jui', 'VendorPath/yiisoft/yii2-jui');
|
||||
|
@ -1,77 +1,92 @@
|
||||
Автозагрузка классов
|
||||
=================
|
||||
|
||||
Для подключения и загрузки классов в 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.php` в свой скрипт.
|
||||
|
||||
> Примечание: Для простоты повествования мы будем говорить только об автозагрузке классов. Стоит отметить, что нижеприведенный способ может быть применен не только для автозагрузки классов, но и для автозагрузки интерфейсов(interface) и трейтов(traits).
|
||||
|
||||
Поиск и подключение файлов классов в Yii реализовано при помощи
|
||||
[автозагрузки классов](http://www.php.net/manual/ru/language.oop5.autoload.php). Фреймворк предоставляет свой быстрый
|
||||
совместимый с [PSR-4](https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.md)
|
||||
автозагрузчик, который устанавливается в момент подключения `Yii.php`.
|
||||
|
||||
> Примечание: Для простоты повествования, в этом разделе мы будем говорить только об автозагрузке классов. Тем не менее,
|
||||
всё описанное применимо к интерфейсам и трейтам.
|
||||
|
||||
Как использовать автозагрузчик Yii <a name="using-yii-autoloader"></a>
|
||||
------------------------
|
||||
--------------------------------------------------------------
|
||||
|
||||
Для того чтобы воспользоваться автозагрузчиком классов Yii вам нужно соблюсти два правила при создании и именовании классов:
|
||||
При использовании автозагрузчика классов Yii следует соблюдать два простых правила создания и именования классов:
|
||||
|
||||
* Каждый класс должен принадлежать определенному пространству имён (прим. `foo\bar\MyClass`).
|
||||
* Каждый класс должен находиться в отдельном файле, путь к которому будет определяться по следующему правилу:
|
||||
* Каждый класс должен принадлежать пространству имён (то есть `foo\bar\MyClass`).
|
||||
* Каждый класс должен находиться в отдельном файле, путь к которому определятся следующим правилом:
|
||||
|
||||
```php
|
||||
// $className - это полное имя класса, начинающееся с обратного слэша, т.е. \
|
||||
// $className — это абсолютное имя класса, начинающееся с "\"
|
||||
$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');
|
||||
```
|
||||
|
||||
Например, если полное имя класса `foo\bar\MyClass`, то [псевдоним пути(alias)](concept-aliases.md) данного файла будет
|
||||
`@foo/bar/MyClass.php`. Для того, чтобы данный псевдоним превратился в путь файла в файловой системе нужно чтобы либо `@foo` либо `@foo/bar` был [корневым псевдонимом(root alias)](concept-aliases.md#defining-aliases).
|
||||
Например, если абсолютное имя класса `foo\bar\MyClass`, то [псевдоним пути](concept-aliases.md) данного файла будет
|
||||
`@foo/bar/MyClass.php`. Для того, чтобы данный псевдоним можно было преобразовать в путь к файлу, необходимо чтобы
|
||||
либо `@foo` либо `@foo/bar` являлся [корневым псевдонимом](concept-aliases.md#defining-aliases).
|
||||
|
||||
При использовании [простого шаблона приложения (Basic Application Template)](start-basic.md), вы можете хранить свои классы в пространствах имен ниже `app`, тогда вам не понадобится указывать новый псевдоним пути для автозагрузки вашего класса. Это работает потому что
|
||||
`@app` является [системным псевдонимом](concept-aliases.md#predefined-aliases), а такое имя класса как `app\components\MyClass`
|
||||
преобразуется в путь
|
||||
`папкавашегоприложения/components/MyClass.php`.
|
||||
При использовании [шаблона приложения basic](start-basic.md) вы можете хранить свои классы в пространстве имён `app`.
|
||||
В этом случае они будут загружаться автоматически без создания нового псевдонима. Это работает потому как `@app`
|
||||
является [заранее определённым псевдонимом](concept-aliases.md#predefined-aliases) и такое имя класса как
|
||||
`app\components\MyClass` в соответствии с описанным выше алготимом преобразуется в путь
|
||||
`директорияПриложения/components/MyClass.php`.
|
||||
|
||||
|
||||
В [шаблоне продвинутого приложения (Advanced Application Template)](tutorial-advanced-app.md), каждый уровень приложения обладает собственным корневым псевдонимом. Например, для front-end части корневым псевдонимом является `@frontend`, а для back-end части `@backend`. Это позволяет включать классы front-end части в пространство имен(namespace) ниже 'frontend', а для back-end части ниже 'backend'. При таком подходе ваши классы будут автоматически загружены автозагрузчиком Yii.
|
||||
В [шаблоне приложения advanced](tutorial-advanced-app.md) каждый уровень приложения обладает собственным корневым
|
||||
псевдонимом. Например, для frontend корневым псевдонимом является `@frontend`, а для backend — `@backend`. Это позволяет
|
||||
разместить классы frontend в пространство имён `frontend`, а классы backend в пространство имён `backend`. При этом
|
||||
классы будут загружены автоматически.
|
||||
|
||||
|
||||
Карта классов <a name="class-map"></a>
|
||||
---------
|
||||
---------------------------------
|
||||
|
||||
Автозагрузчик Yii обладает возможностью, которая называется *карта классов*.Эта возможность позволяет указывать где необходимо искать классы в зависимости от имени файла.
|
||||
Прежде чем загрузить файл автозагрузчик проверяет есть ли правила для файла в карте классов. Если файл находится в карте классов, то данный файл будет загружен напрямую без дальнейших проверок.
|
||||
Это позволяет существенно ускорить автозагрузку. Все базовые классы Yii загружаются именно этим способом.
|
||||
Автозагрузчик Yii поддерживает *карту классов*. Эта возможность позволяет указать путь к файлу для каждого имени класса.
|
||||
При загрузке класса автозагрузчик проверяет наличие класса в карте. Если он там есть, соответствующий файл будет загружен
|
||||
напрямую без каких-либо дополнительных проверок. Это делает автозагрузку очень быстрой. Все классы самого фреймворка
|
||||
загружаются именно этим способом.
|
||||
|
||||
Пример добавления класса в карту классов `Yii::$classMap`:
|
||||
Вы можете добавить класс в карту `Yii::$classMap` следующим образом:
|
||||
|
||||
```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>
|
||||
-----------------------
|
||||
------------------------------------------------------------------
|
||||
|
||||
По причине того что 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
|
||||
require(__DIR__ . '/../vendor/autoload.php');
|
||||
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
|
||||
```
|
||||
|
||||
Вы можете использовать автозагрузчик Composer бес использования автозагрузчика Yii. Но в таком случае скорость автозагрузки может уменьшится, также вам нужно будет соблюсти правила автозагрузки для Composer.
|
||||
Вы можете использовать автозагрузчик Composer без автозагрузчика Yii. Однако, скорость автозагрузки в этом случае
|
||||
может уменьшится. Также вам будет необходимо сдедовать правилам автозагрузчика Composer.
|
||||
|
||||
> Информация: Если вы не хотите использовать автозагрузчик Yii, то вам нужно будет создать свою версию файла `Yii.php`
|
||||
и подключить его к [входному скрипту(entry script)](structure-entry-scripts.md).
|
||||
> Информация: Если вы не хотите использовать автозагрузчик Yii, создайте свою версию файла `Yii.php`
|
||||
и подключите его в [входном скрипте](structure-entry-scripts.md).
|
||||
|
||||
|
||||
Автозагрузка классов расширений <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.
|
||||
|
Reference in New Issue
Block a user