From 4c20a6ee28dd2564e0f672565672e0914d3c782c Mon Sep 17 00:00:00 2001 From: Michael Parfyonov Date: Tue, 5 May 2015 16:51:36 +0300 Subject: [PATCH] Change version in urls to {{version}} --- artisan.md | 2 +- authentication.md | 10 ++--- bus.md | 6 +-- collections.md | 2 +- commands.md | 2 +- configuration.md | 8 ++-- container.md | 2 +- contracts.md | 4 +- controllers.md | 8 ++-- documentation.md | 96 +++++++++++++++++++++++------------------------ eloquent.md | 4 +- events.md | 4 +- facades.md | 8 ++-- filesystem.md | 2 +- homestead.md | 2 +- html.md | 4 +- installation.md | 4 +- introduction.md | 14 +++---- ioc.md | 4 +- lifecycle.md | 4 +- localization.md | 2 +- mail.md | 2 +- menu.md | 60 ++++++++++++++--------------- migrations.md | 2 +- packages.md | 2 +- pagination.md | 2 +- providers.md | 6 +-- queries.md | 2 +- queues.md | 2 +- redis.md | 2 +- releases.md | 24 ++++++------ requests.md | 4 +- responses.md | 10 ++--- routing.md | 6 +-- security.md | 6 +-- session.md | 2 +- ssh.md | 2 +- testing.md | 2 +- upgrade.md | 16 ++++---- validation.md | 2 +- views.md | 6 +-- 41 files changed, 176 insertions(+), 176 deletions(-) diff --git a/artisan.md b/artisan.md index 20380301..63a86cb7 100644 --- a/artisan.md +++ b/artisan.md @@ -54,7 +54,7 @@ Artisan - название интерфейса командной строки, // }); -Вы даже можете добавить команду в очередь для того, чтобы она выполнялась на фоне [менеджером очереди](/docs/5.0/queues): +Вы даже можете добавить команду в очередь для того, чтобы она выполнялась на фоне [менеджером очереди](/docs/{{version}}/queues): Route::get('/foo', function() { diff --git a/authentication.md b/authentication.md index 3ebe5882..830fcb89 100644 --- a/authentication.md +++ b/authentication.md @@ -65,7 +65,7 @@ Laravel позволяет сделать аутентификацию очен } -Метод `attempt` принимает массив «ключ-значение» в качестве первого аргумента. Значение ключа `password` будет [захэшировано](/docs/5.0/hashing). Другие значения массива используются для поиска пользователя в таблице БД. В примере выше, пользователь будет выбираться по полю `email`. Если пользователь будет найден, то хэшированный пароль из БД будет сравнён с хэшированным значение поля `password` из переданного массива. Если два этих хэша совпадут, то для пользователя будет создана новая аутентифицированная сессия. +Метод `attempt` принимает массив «ключ-значение» в качестве первого аргумента. Значение ключа `password` будет [захэшировано](/docs/{{version}}/hashing). Другие значения массива используются для поиска пользователя в таблице БД. В примере выше, пользователь будет выбираться по полю `email`. Если пользователь будет найден, то хэшированный пароль из БД будет сравнён с хэшированным значение поля `password` из переданного массива. Если два этих хэша совпадут, то для пользователя будет создана новая аутентифицированная сессия. Метод `attempt` возвращает `true`, если аутентификация прошла успешно, и `false` в противном случае. @@ -147,7 +147,7 @@ Laravel позволяет сделать аутентификацию очен #### События при аутентификации -При вызове метода `attempt` запускается [событие](/docs/5.0/events) `auth.attempt`. Если аутентификация прошла успешно +При вызове метода `attempt` запускается [событие](/docs/{{version}}/events) `auth.attempt`. Если аутентификация прошла успешно и пользователь вошёл в приложение, будет запущено событие `auth.login`. @@ -202,7 +202,7 @@ Laravel позволяет сделать аутентификацию очен } -В третьих, можно использовать мощь [сервис-контейнера](/docs/5.0/container), указав в качестве аргумента в конструкторе или методе контракт `Illuminate\Contracts\Auth\Authenticatable`: +В третьих, можно использовать мощь [сервис-контейнера](/docs/{{version}}/container), указав в качестве аргумента в конструкторе или методе контракт `Illuminate\Contracts\Auth\Authenticatable`: ## Ограничение доступа к роутам -Вы можете ипользовать [посредников](/docs/5.0/middleware) (middleware) для ограничения доступа к роутам. В Laravel уже есть посредник `auth`, который находится в файле `app\Http\Middleware\Authenticate.php`. Всё, что вам нужно - указать его в описании нужного роута: +Вы можете ипользовать [посредников](/docs/{{version}}/middleware) (middleware) для ограничения доступа к роутам. В Laravel уже есть посредник `auth`, который находится в файле `app\Http\Middleware\Authenticate.php`. Всё, что вам нужно - указать его в описании нужного роута: // Если роут описан как замыкание... @@ -255,7 +255,7 @@ Laravel позволяет сделать аутентификацию очен #### Настройка Stateless HTTP Basic фильтра -Так же можно использовать аутентификацию на основе HTTP Basic без создания сессии и идентификационной куки, что часто используется для аутентификации через API. Для этого нужно создать [посредника](/docs/5.0/middleware), который будет вызывать метод `onceBasic`: +Так же можно использовать аутентификацию на основе HTTP Basic без создания сессии и идентификационной куки, что часто используется для аутентификации через API. Для этого нужно создать [посредника](/docs/{{version}}/middleware), который будет вызывать метод `onceBasic`: public function handle($request, Closure $next) { diff --git a/bus.md b/bus.md index fd2f82c7..1d66adee 100644 --- a/bus.md +++ b/bus.md @@ -69,7 +69,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce } Метод `handle` тоже может принимать зависимости в аргументах (type hinting), как и конструктор. Как и конструктору, они будут поданы на вход -автоматически при помощи [IoC контейнера](/docs/5.0/container). +автоматически при помощи [IoC контейнера](/docs/{{version}}/container). /** * Execute the command. @@ -143,7 +143,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce `implements Illuminate\Contracts\Queue\ShouldBeQueued`. Этот интерфейс не содержит обязательных методов и является просто индикатором для командной шины. После этого метод `dispatch` вместо того, чтобы запустить команду, поместит её в очередь для последующего запуска в фоне. -Чтобы узнать поподробнее о том, как в Laravel осуществляется запуск задач в фоне, обратитесь к [документации по очередям](/docs/5.0/queues). +Чтобы узнать поподробнее о том, как в Laravel осуществляется запуск задач в фоне, обратитесь к [документации по очередям](/docs/{{version}}/queues). ## Конвейеры команд @@ -170,7 +170,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce } -Классы, которые необходимо задействовать в конвейере, ищутся и загружаются через [сервис-контейнер](/docs/5.0/container), поэтому вы можете указывать +Классы, которые необходимо задействовать в конвейере, ищутся и загружаются через [сервис-контейнер](/docs/{{version}}/container), поэтому вы можете указывать любые зависимости в их конструкторах. В качестве элемента конвейера так же можно использовать замыкания: diff --git a/collections.md b/collections.md index 753fd418..4b38b834 100644 --- a/collections.md +++ b/collections.md @@ -37,7 +37,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce $collection = Collection::make([1, 2, 3]); -Там, где методы [Eloquent](/docs/5.0/eloquent) возвращают не один, а несколько объектов - возвращается коллекция. Однако, коллекции +Там, где методы [Eloquent](/docs/{{version}}/eloquent) возвращают не один, а несколько объектов - возвращается коллекция. Однако, коллекции предоставляют слишком мощный функционал, чтобы оставить его только для Eloquent-моделей, попробуйте применить класс `Collection` у себя в приложении. #### Посмотрите, что могут коллекции diff --git a/commands.md b/commands.md index 1287cde9..b665fee1 100644 --- a/commands.md +++ b/commands.md @@ -141,4 +141,4 @@ git 5af28da3ac17a272f3390fbc08582fbd1708b42d ]; Для регистрации вашей команды просто добавьте её в этот массив. Когда Artisan загрузится, все команды из этого массива будут автоматически -определены с помощь [IoC-контейнера](/docs/5.0/container) и зарегистрированы. +определены с помощь [IoC-контейнера](/docs/{{version}}/container) и зарегистрированы. diff --git a/configuration.md b/configuration.md index 683cc144..ed9f131e 100644 --- a/configuration.md +++ b/configuration.md @@ -34,7 +34,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce Laravel «из коробки» практически не требует дополнительного конфигурирования - вы можете сразу начать писать код. Максимум, вам может быть нужно изменить настройки доступа к базе данных в `config/database.php` и, возможно, изменить параметры `timezone` и `locale` в `config/app.php`. -Далее, вам нужно определиться с названием [среды выполнения](/docs/5.0/configuration#environment-configuration), в которой будет работать ваше приложение на данной машине. Например, когда вы разрабатываете приложение, вам нужно видеть подробный текст возникающих ошибок. По умолчанию фреймворк считает, что выполняется в среде `production` и в ней текст ошибки не выводится. Поэтому вы определяете, что на данной машине у вас среда выполнения `local` и в `config/local/app.php` ставите параметр `debug` в `true`. +Далее, вам нужно определиться с названием [среды выполнения](/docs/{{version}}/configuration#environment-configuration), в которой будет работать ваше приложение на данной машине. Например, когда вы разрабатываете приложение, вам нужно видеть подробный текст возникающих ошибок. По умолчанию фреймворк считает, что выполняется в среде `production` и в ней текст ошибки не выводится. Поэтому вы определяете, что на данной машине у вас среда выполнения `local` и в `config/local/app.php` ставите параметр `debug` в `true`. > **Примечание** Никогда не ставьте `app.debug` в `true` в продакшне, т.е. на хостинге. Просто никогда. @@ -90,7 +90,7 @@ Laravel «из коробки» практически не требует до // Среда - local ИЛИ staging } -`$app` можно получить из [сервис-контейнера](/docs/5.0/container) по ключу `'Illuminate\Contracts\Foundation\Application'`. Если вы используете вышеприведенный код в сервис-провайдере, то вместо `$app` используйте `$this->app`. +`$app` можно получить из [сервис-контейнера](/docs/{{version}}/container) по ключу `'Illuminate\Contracts\Foundation\Application'`. Если вы используете вышеприведенный код в сервис-провайдере, то вместо `$app` используйте `$this->app`. Так же можно использовать функцию `app` и фасад `App`: @@ -124,7 +124,7 @@ Laravel «из коробки» практически не требует до ### Режим обслуживания и очереди -Пока ваше приложение находится в режиме обслуживания, [очереди](/docs/5.0/queues) не будут обрабатываться. Работа очередей будет возобновлена, когда приложение выйдет из режима обслуживания. +Пока ваше приложение находится в режиме обслуживания, [очереди](/docs/{{version}}/queues) не будут обрабатываться. Работа очередей будет возобновлена, когда приложение выйдет из режима обслуживания. ## Красивые URL @@ -150,4 +150,4 @@ Laravel поставляется вместе с файлом `public/.htaccess` try_files $uri $uri/ /index.php?$query_string; } -Если вы используете [Homestead](/docs/5.0/homestead), то вам ничего делать не нужно, там всё это уже настроено. +Если вы используете [Homestead](/docs/{{version}}/homestead), то вам ничего делать не нужно, там всё это уже настроено. diff --git a/container.md b/container.md index ce45e731..349bb159 100644 --- a/container.md +++ b/container.md @@ -77,7 +77,7 @@ Service Container (сервис-контейнер, ранее IoC-контей ### Связывание (Binding, регистрация) Так как практически все биндинги, т.е. соответствие строкового ключа реальному объекту в контейнере, в вашем приложении будут регистрироваться -в методе `register()` [сервис-провайдеров](/docs/5.0/provider), все нижеследующие примеры даны для этого контекста. +в методе `register()` [сервис-провайдеров](/docs/{{version}}/provider), все нижеследующие примеры даны для этого контекста. Если вы хотите использовать контейнер в другом месте своего приложения, вы можете внедрить в свой класс `Illuminate\Contracts\Container\Container`. Так же для доступа к контейнеру можно использовать фасад `App`. (TODO дополнить примерами) diff --git a/contracts.md b/contracts.md index 27d83d9b..433cb577 100644 --- a/contracts.md +++ b/contracts.md @@ -96,7 +96,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce Этот код не связан ни с одной внешней библиотекой, в том числе с ядром фреймворка! Контракт не содержит никакой конкретной реализации кэширования, только интерфейс, и вы можете написать любую свою реализацию кэширования - используя внешние библиотеки или нет. Кроме того, теперь вы можете в любой момент легко изменить способ кэширования, просто подав другую реализацию в конструктор класса при регистрации -его в [сервис-контейнере](/docs/5.0/container) в методе `register()` вашего [сервис-провайдера](/docs/5.0/provider). +его в [сервис-контейнере](/docs/{{version}}/container) в методе `register()` вашего [сервис-провайдера](/docs/{{version}}/provider). ### Упрощение кода @@ -193,4 +193,4 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce } -Если вы хотите больше узнать о сервис-контейнере, прочтите [соответствующий раздел документации](/docs/5.0/container). +Если вы хотите больше узнать о сервис-контейнере, прочтите [соответствующий раздел документации](/docs/{{version}}/container). diff --git a/controllers.md b/controllers.md index 0e7f1bda..a8a1a564 100644 --- a/controllers.md +++ b/controllers.md @@ -83,7 +83,7 @@ git 77b555a10b132a40fe1f78ae658674cc26b8c95a ## Использование посредников с контроллерами -[Посредники](/docs/5.0/middleware) могут быть привязаны к маршрутам следующим образом: +[Посредники](/docs/{{version}}/middleware) могут быть привязаны к маршрутам следующим образом: Route::get('profile', [ 'middleware' => 'auth', @@ -233,9 +233,9 @@ DELETE | /photo/{photo} | destroy | photo.destroy #### Внедрение зависимостей в конструкторе -[Сервис-контейнер](/docs/5.0/container) используется для поиска и получения всех контроллеров. +[Сервис-контейнер](/docs/{{version}}/container) используется для поиска и получения всех контроллеров. За счёт этого вы можете указать любые зависимости в качестве аргументов конструктора вашего контроллера, -в том числе и любой [контракт](/docs/5.0/contracts): +в том числе и любой [контракт](/docs/{{version}}/contracts): **Примечание:** Внедрение зависимостей в методы контроллера полностью дружат с механизмом [связанных моделей](/docs/5.0/routing#route-model-binding). +> **Примечание:** Внедрение зависимостей в методы контроллера полностью дружат с механизмом [связанных моделей](/docs/{{version}}/routing#route-model-binding). Сервис-контейнер определит, какие из аргументов должны быть связаны с моделями, а какие должны быть внедрены. diff --git a/documentation.md b/documentation.md index 0af557d8..854b4894 100755 --- a/documentation.md +++ b/documentation.md @@ -2,57 +2,57 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce --- - Вступление - - [Версии фреймворка](/docs/5.0/releases) - - [Руководство по обновлению](/docs/5.0/upgrade) - - [Участие в разработке](/docs/5.0/contributions) + - [Версии фреймворка](/docs/{{version}}/releases) + - [Руководство по обновлению](/docs/{{version}}/upgrade) + - [Участие в разработке](/docs/{{version}}/contributions) - Установка - - [Установка](/docs/5.0/installation) - - [Настройка](/docs/5.0/configuration) - - [Homestead](/docs/5.0/homestead) + - [Установка](/docs/{{version}}/installation) + - [Настройка](/docs/{{version}}/configuration) + - [Homestead](/docs/{{version}}/homestead) - Основы - - [Routing](/docs/5.0/routing) - - [Middleware](/docs/5.0/middleware) - - [Controllers](/docs/5.0/controllers) - - [Requests](/docs/5.0/requests) - - [Responses](/docs/5.0/responses) - - [Views](/docs/5.0/views) + - [Routing](/docs/{{version}}/routing) + - [Middleware](/docs/{{version}}/middleware) + - [Controllers](/docs/{{version}}/controllers) + - [Requests](/docs/{{version}}/requests) + - [Responses](/docs/{{version}}/responses) + - [Views](/docs/{{version}}/views) - Архитектура фреймворка - - [Service Providers](/docs/5.0/providers) - - [Service Container](/docs/5.0/container) - - [Контракты](/docs/5.0/contracts) - - [Фасады](/docs/5.0/facades) - - [Жизненный цикл запроса](/docs/5.0/lifecycle) - - [Структура приложения](/docs/5.0/structure) + - [Service Providers](/docs/{{version}}/providers) + - [Service Container](/docs/{{version}}/container) + - [Контракты](/docs/{{version}}/contracts) + - [Фасады](/docs/{{version}}/facades) + - [Жизненный цикл запроса](/docs/{{version}}/lifecycle) + - [Структура приложения](/docs/{{version}}/structure) - Сервисы - - [Authentication](/docs/5.0/authentication) - - [Billing](/docs/5.0/billing) - - [Cache](/docs/5.0/cache) - - [Collections](/docs/5.0/collections) - - [Command Bus](/docs/5.0/bus) - - [Расширение ядра](/docs/5.0/extending) - - [Elixir](/docs/5.0/elixir) - - [Encryption](/docs/5.0/encryption) - - [Ошибки и логирование](/docs/5.0/errors) - - [Events](/docs/5.0/events) - - [Filesystem / Cloud Storage](/docs/5.0/filesystem) - - [Hashing](/docs/5.0/hashing) - - [Helpers](/docs/5.0/helpers) - - [Локализация](/docs/5.0/localization) - - [Mail](/docs/5.0/mail) - - [Разработка пакетов](/docs/5.0/packages) - - [Pagination](/docs/5.0/pagination) - - [Queues](/docs/5.0/queues) - - [Session](/docs/5.0/session) - - [Шаблонизатор Blade](/docs/5.0/templates) - - [Тестирование](/docs/5.0/testing) - - [Validation](/docs/5.0/validation) + - [Authentication](/docs/{{version}}/authentication) + - [Billing](/docs/{{version}}/billing) + - [Cache](/docs/{{version}}/cache) + - [Collections](/docs/{{version}}/collections) + - [Command Bus](/docs/{{version}}/bus) + - [Расширение ядра](/docs/{{version}}/extending) + - [Elixir](/docs/{{version}}/elixir) + - [Encryption](/docs/{{version}}/encryption) + - [Ошибки и логирование](/docs/{{version}}/errors) + - [Events](/docs/{{version}}/events) + - [Filesystem / Cloud Storage](/docs/{{version}}/filesystem) + - [Hashing](/docs/{{version}}/hashing) + - [Helpers](/docs/{{version}}/helpers) + - [Локализация](/docs/{{version}}/localization) + - [Mail](/docs/{{version}}/mail) + - [Разработка пакетов](/docs/{{version}}/packages) + - [Pagination](/docs/{{version}}/pagination) + - [Queues](/docs/{{version}}/queues) + - [Session](/docs/{{version}}/session) + - [Шаблонизатор Blade](/docs/{{version}}/templates) + - [Тестирование](/docs/{{version}}/testing) + - [Validation](/docs/{{version}}/validation) - База данных - - [Basic Usage](/docs/5.0/database) - - [Query Builder](/docs/5.0/queries) - - [Eloquent ORM](/docs/5.0/eloquent) - - [Schema Builder](/docs/5.0/schema) - - [Migrations & Seeding](/docs/5.0/migrations) - - [Redis](/docs/5.0/redis) + - [Basic Usage](/docs/{{version}}/database) + - [Query Builder](/docs/{{version}}/queries) + - [Eloquent ORM](/docs/{{version}}/eloquent) + - [Schema Builder](/docs/{{version}}/schema) + - [Migrations & Seeding](/docs/{{version}}/migrations) + - [Redis](/docs/{{version}}/redis) - Artisan CLI - - [Описание](/docs/5.0/artisan) - - [Разработка](/docs/5.0/commands) + - [Описание](/docs/{{version}}/artisan) + - [Разработка](/docs/{{version}}/commands) diff --git a/eloquent.md b/eloquent.md index 521225fc..44a67da4 100644 --- a/eloquent.md +++ b/eloquent.md @@ -76,7 +76,7 @@ git 8f30c7ae0441a4894d6354c9a6f65699148e18eb var_dump($user->name); -> **Примечание:** Все методы, доступные в [конструкторе запросов](/docs/queries), также доступны при работе с моделями Eloquent. +> **Примечание:** Все методы, доступные в [конструкторе запросов](/docs/{{version}}/queries), также доступны при работе с моделями Eloquent. #### Получение модели по первичному ключу с возбуждением исключения @@ -137,7 +137,7 @@ git 8f30c7ae0441a4894d6354c9a6f65699148e18eb $user = User::on('имя-соединения')->find(1); -Если вы используете [отдельные соединения на чтение и запись](/docs/5.0/database#read-write-connections), вы можете принудительно +Если вы используете [отдельные соединения на чтение и запись](/docs/{{version}}/database#read-write-connections), вы можете принудительно прочитать данные по соединению, которое осуществляет запись: $user = User::onWriteConnection()->find(1); diff --git a/events.md b/events.md index 771a0a59..1cbaedd2 100644 --- a/events.md +++ b/events.md @@ -78,7 +78,7 @@ Events в Laravel - это простая реализация паттерна ## Обработка события в фоне -Хотите запустить обработчик события в фоне при помощи [queue](/docs/5.0/queues) ? Это делается очень легко. При создании класса обработчика события добавьте флаг `--queued`: +Хотите запустить обработчик события в фоне при помощи [queue](/docs/{{version}}/queues) ? Это делается очень легко. При создании класса обработчика события добавьте флаг `--queued`: php artisan handler:event SendPurchaseConfirmation --event=PodcastWasPurchased --queued @@ -142,6 +142,6 @@ Events в Laravel - это простая реализация паттерна Event::subscribe($subscriber); -Вы также можете использовать [сервис-контейнер](/docs/5.0/container) для того, чтобы получить объект своего подписчика на события: +Вы также можете использовать [сервис-контейнер](/docs/{{version}}/container) для того, чтобы получить объект своего подписчика на события: Event::subscribe('UserEventHandler'); diff --git a/facades.md b/facades.md index f5d3e3c2..b20caff3 100644 --- a/facades.md +++ b/facades.md @@ -14,13 +14,13 @@ git 4c3d4d4675101a3fa18154d1c85cf292a2292b46 ## Введение -Фасады предоставляют «статический» интерфейс (`Foo::bar()`) к классам, доступным в [IoC-контейнере](/docs/ioc). Laravel поставляется +Фасады предоставляют «статический» интерфейс (`Foo::bar()`) к классам, доступным в [IoC-контейнере](/docs/{{version}}/ioc). Laravel поставляется со множеством фасадов и вы, вероятно, использовали их, даже не подозревая об этом. Иногда вам может понадобиться создать собственные фасады для вашего приложения и пакетов (packages), поэтому давайте изучим идею, разработку и использование этих классов. -> **Примечание:** перед погружением в фасады настоятельно рекомендуется как можно детальнее изучить [IoC-контейнер Laravel](/docs/ioc). +> **Примечание:** перед погружением в фасады настоятельно рекомендуется как можно детальнее изучить [IoC-контейнер Laravel](/docs/{{version}}/ioc). ## Описание @@ -118,7 +118,7 @@ git 4c3d4d4675101a3fa18154d1c85cf292a2292b46 return new \PaymentGateway\Payment; }); -Самое лучшее место для регистрации этой связки - новый [сервис-провайдер](/docs/ioc#service-providers) который мы назовём +Самое лучшее место для регистрации этой связки - новый [сервис-провайдер](/docs/{{version}}/ioc#service-providers) который мы назовём `PaymentServiceProvider` и в котором мы создадим метод `register`, содержащий код выше. После этого вы можете настроить Laravel для загрузки этого провайдера в файле `config/app.php`. @@ -149,7 +149,7 @@ git 4c3d4d4675101a3fa18154d1c85cf292a2292b46 ## Фасады для тестирования Юнит-тесты играют важную роль в том, почему фасады делают именно то, то они делают. На самом деле возможность тестирования - основная причина, -по которой фасады вообще существуют. Эта тема подробнее раскрыта в соответствующем разделе документации - [фасады-заглушки](/docs/testing#mocking-facades). +по которой фасады вообще существуют. Эта тема подробнее раскрыта в соответствующем разделе документации - [фасады-заглушки](/docs/{{version}}/testing#mocking-facades). ## Facade Class Reference diff --git a/filesystem.md b/filesystem.md index b29578a9..d70aaa9c 100644 --- a/filesystem.md +++ b/filesystem.md @@ -38,7 +38,7 @@ Laravel предоставляет чудесную абстракцию для ## Основы использования Для взаимодействия с вашими дисками вы можете использовать фасад `Storage` или внедрить в конструктор класса объект, реализующий -`Illuminate\Contracts\Filesystem\Factory`, используя [сервис-контейнер](/docs/5.0/container). +`Illuminate\Contracts\Filesystem\Factory`, используя [сервис-контейнер](/docs/{{version}}/container). #### Подключение диска diff --git a/homestead.md b/homestead.md index c9047765..8381227f 100644 --- a/homestead.md +++ b/homestead.md @@ -35,7 +35,7 @@ Homestead работает под любыми версиями Windows, Mac и - Redis - Memcached - Beanstalkd -- [Laravel Envoy](/docs/ssh#envoy-task-runner) +- [Laravel Envoy](/docs/{{version}}/ssh#envoy-task-runner) - Fabric + HipChat Extension diff --git a/html.md b/html.md index ab6d049f..53603dc2 100644 --- a/html.md +++ b/html.md @@ -75,7 +75,7 @@ Laravel предоставляет простую защиту от поддел Теперь, когда вы генерируете элемент формы - такой, как текстовое поле - значение свойства модели, соответствующее этому полю, будет присвоено ему автоматически. Так, для примера, значение текстового поля, названного `email`, будет установлено в значение свойства модели пользователя `email`. Но это еще не всё! Если в сессии будет переменная, чьё имя соответствует имени текстового поля, то будет использовано это значение, а не свойство модели. Итак, приоритет выглядит следующим образом: -1. Flash-переменная сессии ([старый ввод](/docs/requests#old)) +1. Flash-переменная сессии ([старый ввод](/docs/{{version}}/requests#old)) 2. Напрямую переданные значения в запрос 3. Свойство модели @@ -192,4 +192,4 @@ Laravel предоставляет простую защиту от поддел ##Формирование URL -Урлы можно не только задавать явным образом, но и формировать исходя из имени роута назначения или названия экшна контроллера - см. [helpers](/docs/helpers#urls). +Урлы можно не только задавать явным образом, но и формировать исходя из имени роута назначения или названия экшна контроллера - см. [helpers](/docs/{{version}}/helpers#urls). diff --git a/installation.md b/installation.md index c3b6dd25..454d8d9e 100644 --- a/installation.md +++ b/installation.md @@ -54,7 +54,7 @@ Laravel использует [Composer](http://getcomposer.org) для упра Laravel практически не требует другой начальной настройки - вы можете сразу начинать разработку. Однако может быть полезным изучить файл `config/app.php` - он содержит несколько настроек вроде `timezone` и `locale`, которые вам может потребоваться изменить в соответствии с нуждами вашего приложения. -Далее вы можете сконфигурить [настройки среды выполнения](/docs/5.0/configuration#environment-configuration). +Далее вы можете сконфигурить [настройки среды выполнения](/docs/{{version}}/configuration#environment-configuration). > **Примечание:** Никогда не устанавливайте настройку `app.debug` в `true` на рабочем (продакшн) окружении. @@ -86,4 +86,4 @@ Laravel поставляется вместе с файлом `public/.htaccess` try_files $uri $uri/ /index.php?$query_string; } -Если вы используете [Homestead](/docs/5.0/homestead), то вам ничего делать не нужно, там всё это уже настроено. +Если вы используете [Homestead](/docs/{{version}}/homestead), то вам ничего делать не нужно, там всё это уже настроено. diff --git a/introduction.md b/introduction.md index 050cea3e..5d25b246 100644 --- a/introduction.md +++ b/introduction.md @@ -12,16 +12,16 @@ git 53d6a6b5b4c47d274b714a13a03d9a796239b835 Изучать новый незнакомый фреймворк - нелегкое занятие, но учить новое всегда интересно. Вот некоторые рекомендации, что начать читать в первую очередь: -- [Установка](/docs/5.0/installation) и [Настройка](/docs/5.0/configuration) -- [Routing](/docs/5.0/routing) -- [Requests & Input](/docs/5.0/requests) -- [Responses](/docs/5.0/responses) -- [Views](/docs/5.0/views) -- [Controllers](/docs/5.0/controllers) +- [Установка](/docs/{{version}}/installation) и [Настройка](/docs/{{version}}/configuration) +- [Routing](/docs/{{version}}/routing) +- [Requests & Input](/docs/{{version}}/requests) +- [Responses](/docs/{{version}}/responses) +- [Views](/docs/{{version}}/views) +- [Controllers](/docs/{{version}}/controllers) После изучения этих документов вы будете иметь представление о том, как во фреймворке происходит обработка цикла запроса. -Затем можно почитать про [настройку соединения](/docs/database) и [построение запросов](/docs/5.0/queries) к базе данных, а так же про встроенный [Eloquent ORM](/docs/5.0/eloquent), облегчающий работу с БД. А для того, чтобы понять, как реализовать функционал регистрации и логина пользователей - главу [Аутентификация](/docs/5.0/authentication) +Затем можно почитать про [настройку соединения](/docs/{{version}}/database) и [построение запросов](/docs/{{version}}/queries) к базе данных, а так же про встроенный [Eloquent ORM](/docs/{{version}}/eloquent), облегчающий работу с БД. А для того, чтобы понять, как реализовать функционал регистрации и логина пользователей - главу [Аутентификация](/docs/{{version}}/authentication) ## Философия Laravel diff --git a/ioc.md b/ioc.md index ddad91e1..e5250bff 100644 --- a/ioc.md +++ b/ioc.md @@ -124,9 +124,9 @@ Laravel предоставляет несколько возможностей } -В этом примере класс `OrderRepository` автоматически встроится в контроллер. Это значит, что при использовании [юнит-тестов](/docs/testing) класс-заглушка ("mock") для `OrderRepository` может быть добавлен в контейнер, таким образом легко имитируя взаимодействие с БД. +В этом примере класс `OrderRepository` автоматически встроится в контроллер. Это значит, что при использовании [юнит-тестов](/docs/{{version}}/testing) класс-заглушка ("mock") для `OrderRepository` может быть добавлен в контейнер, таким образом легко имитируя взаимодействие с БД. -[Фильтры](/docs/routing#route-filters), [вью-композеры](/docs/responses#view-composers) и [обработчики событий](/docs/events#using-classes-as-listeners) могут также извлекаться из IoC. При регистрации этих объектов просто передайте имя класса, который должен быть использован: +[Фильтры](/docs/{{version}}/routing#route-filters), [вью-композеры](/docs/{{version}}/responses#view-composers) и [обработчики событий](/docs/{{version}}/events#using-classes-as-listeners) могут также извлекаться из IoC. При регистрации этих объектов просто передайте имя класса, который должен быть использован: #### Другие примеры использования IoC diff --git a/lifecycle.md b/lifecycle.md index d3372fd3..62909e5b 100644 --- a/lifecycle.md +++ b/lifecycle.md @@ -24,7 +24,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce Точка входа в приложение Laravel - файл `public/index.php`. Все запросы веб-сервер (Apache или Nginx) направляет сюда. Файл не содержит много кода, это просто точка, откуда начинает загружаться фреймворк и где отдается контент браузеру. -`index.php` загружает созданный Composer-ом автозагрузчик классов и при помощи `bootstrap/app.php` создает `$app` - объект приложения, или [сервис-контейнер](/docs/5.0/container). +`index.php` загружает созданный Composer-ом автозагрузчик классов и при помощи `bootstrap/app.php` создает `$app` - объект приложения, или [сервис-контейнер](/docs/{{version}}/container). #### Ядро обработки HTTP- и консольных запросов @@ -32,7 +32,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce HTTP-ядро наследуется от класса `Illuminate\Foundation\Http\Kernel`, в котором определён массив `bootstrappers` с классами, которые должны запускаться перед обработкой запроса. Там есть обработчики ошибок, класс, конфигурирующий логирование, классы, реализующие загрузку конфигов, получение названия среды выполнения и выполнения других задач, которые должны быть исполнены перед обработкой запроса. -В HTTP-ядре также определён список [middleware (посредников)](/docs/5.0/middleware), через которые должен пройти запрос и быть разрешённым к исполнению. Посредники реализуют чтение и запись HTTP-сессии, определяют, находится ли приложение [в режиме обслуживания](/docs/5.0/configuration#maintenance-mode), проверяют CSRF-токен и т.п. +В HTTP-ядре также определён список [middleware (посредников)](/docs/{{version}}/middleware), через которые должен пройти запрос и быть разрешённым к исполнению. Посредники реализуют чтение и запись HTTP-сессии, определяют, находится ли приложение [в режиме обслуживания](/docs/{{version}}/configuration#maintenance-mode), проверяют CSRF-токен и т.п. HTTP-ядро - это как некий черный ящик. Принимает на вход `Request` (запрос) и отдает `Response` (ответ). diff --git a/localization.md b/localization.md index 2a0fd446..42ffbb6b 100644 --- a/localization.md +++ b/localization.md @@ -102,7 +102,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce ## Сообщения валидации -О том, как использовать файлы локализации для сообщений валидации, смотрите соответствующий раздел [документации](/docs/5.0/validation#localization). +О том, как использовать файлы локализации для сообщений валидации, смотрите соответствующий раздел [документации](/docs/{{version}}/validation#localization). ## Перекрытие файлов локализации из пакетов diff --git a/mail.md b/mail.md index 6049b439..59a9dc57 100644 --- a/mail.md +++ b/mail.md @@ -122,7 +122,7 @@ Laravel содержит драйвера отправки почты через ## Очереди отправки -Из-за того, что отправка писем может сильно повлиять на время отклика приложения, многие разработчики помещают их в фоновую очередь на отправку. Laravel позволяет делать это, используя [единое API очередей](/docs/5.0/queues). Для помещения сообщения в очередь просто используйте метод `Mail::queue()`: +Из-за того, что отправка писем может сильно повлиять на время отклика приложения, многие разработчики помещают их в фоновую очередь на отправку. Laravel позволяет делать это, используя [единое API очередей](/docs/{{version}}/queues). Для помещения сообщения в очередь просто используйте метод `Mail::queue()`: #### Помещение сообщения в очередь отправки diff --git a/menu.md b/menu.md index d8bd5ba2..3311e2d6 100644 --- a/menu.md +++ b/menu.md @@ -1,37 +1,37 @@ * Первый взгляд - * [Установка](/docs/installation) - * [Настройка](/docs/configuration) - * [Жизненный цикл запроса](/docs/lifecycle) - * [Роутинг](/docs/routing) - * [Вход](/docs/requests) - * [Выход](/docs/responses) - * [Контроллеры](/docs/controllers) - * [Ошибки и логирование](/docs/errors) + * [Установка](/docs/{{version}}/installation) + * [Настройка](/docs/{{version}}/configuration) + * [Жизненный цикл запроса](/docs/{{version}}/lifecycle) + * [Роутинг](/docs/{{version}}/routing) + * [Вход](/docs/{{version}}/requests) + * [Выход](/docs/{{version}}/responses) + * [Контроллеры](/docs/{{version}}/controllers) + * [Ошибки и логирование](/docs/{{version}}/errors) * Обо всем поподробнее - * [Authentication](/docs/security) - * [Cache](/docs/cache) - * [Core Extension](/docs/extending) - * [Events](/docs/events) - * [Facades](/docs/facades) - * [Forms & HTML](/docs/html) - * [Helpers](/docs/helpers) - * [IoC Container](/docs/ioc) - * [Localization](/docs/localization) - * [Mail](/docs/mail) - * [Package Development](/docs/packages) - * [Pagination](/docs/pagination) - * [Queues](/docs/queues) - * [Security](/docs/security) - * [Session](/docs/session) - * [SSH](/docs/ssh) - * [Templates](/docs/templates) - * [Unit Testing](/docs/testing) - * [Validation](/docs/validation) + * [Authentication](/docs/{{version}}/security) + * [Cache](/docs/{{version}}/cache) + * [Core Extension](/docs/{{version}}/extending) + * [Events](/docs/{{version}}/events) + * [Facades](/docs/{{version}}/facades) + * [Forms & HTML](/docs/{{version}}/html) + * [Helpers](/docs/{{version}}/helpers) + * [IoC Container](/docs/{{version}}/ioc) + * [Localization](/docs/{{version}}/localization) + * [Mail](/docs/{{version}}/mail) + * [Package Development](/docs/{{version}}/packages) + * [Pagination](/docs/{{version}}/pagination) + * [Queues](/docs/{{version}}/queues) + * [Security](/docs/{{version}}/security) + * [Session](/docs/{{version}}/session) + * [SSH](/docs/{{version}}/ssh) + * [Templates](/docs/{{version}}/templates) + * [Unit Testing](/docs/{{version}}/testing) + * [Validation](/docs/{{version}}/validation) * Работа с БД - * [Начала](/docs/database) - * [Query Builder](/docs/queries) + * [Начала](/docs/{{version}}/database) + * [Query Builder](/docs/{{version}}/queries) * Artisan - * [Разработка Artisan-команд](/docs/commands) \ No newline at end of file + * [Разработка Artisan-команд](/docs/{{version}}/commands) \ No newline at end of file diff --git a/migrations.md b/migrations.md index a6af75fe..4bd89ac2 100644 --- a/migrations.md +++ b/migrations.md @@ -13,7 +13,7 @@ git 6f3434990d7bef4030e5397737978b128d83c955 ## Введение -Миграции - это что-то вроде системы контроля версий для вашей базы данных. Они позволяют команде программистов изменять структуру БД, в то же время оставаясь в курсе изменений других участников. Миграции обычно идут рука об руку с [конструктором таблиц](/docs/5.0/schema) для более простого обращения с архитектурой вашего приложения. +Миграции - это что-то вроде системы контроля версий для вашей базы данных. Они позволяют команде программистов изменять структуру БД, в то же время оставаясь в курсе изменений других участников. Миграции обычно идут рука об руку с [конструктором таблиц](/docs/{{version}}/schema) для более простого обращения с архитектурой вашего приложения. ## Создание миграций diff --git a/packages.md b/packages.md index 19b81d0e..041b3272 100644 --- a/packages.md +++ b/packages.md @@ -25,7 +25,7 @@ git 1263e22693eef7de28e9d329d53107f4d44436bb ## Файлы шаблонов (views) -Структура вашего пакета зависит от вас. Обычно пакет имеет в составе один или несколько [сервис-провайдеров](/docs/5.0/providers). Сервис-провайдеры содержат регистрацию классов в [IoC](/docs/5.0/container) и определяют, где находятся конфиги, шаблоны (views) и локализационные файлы пакета. +Структура вашего пакета зависит от вас. Обычно пакет имеет в составе один или несколько [сервис-провайдеров](/docs/{{version}}/providers). Сервис-провайдеры содержат регистрацию классов в [IoC](/docs/{{version}}/container) и определяют, где находятся конфиги, шаблоны (views) и локализационные файлы пакета. ### Шаблоны diff --git a/pagination.md b/pagination.md index 78d403a4..e95bbbf0 100644 --- a/pagination.md +++ b/pagination.md @@ -17,7 +17,7 @@ git 68cb89f6ae991b798d839447f48582218585ae81 ## Использование -Есть несколько способов разделения данных на страницы. Самый простой - используя метод `paginate` объекта-построителя запросов или в связке с моделями [Eloquent](/docs/5.0/eloquent). +Есть несколько способов разделения данных на страницы. Самый простой - используя метод `paginate` объекта-построителя запросов или в связке с моделями [Eloquent](/docs/{{version}}/eloquent). #### Постраничный вывод выборки из БД diff --git a/providers.md b/providers.md index 2edee0bd..b6ef36a2 100644 --- a/providers.md +++ b/providers.md @@ -23,7 +23,7 @@ Service providers (сервис-провайдеры, дословно - «по ## Использование провайдеров -Сервис-провайдеры должны расширять (extends) класс `Illuminate\Support\ServiceProvider`. Это абстрактный класс, который требует, чтобы в наследуемом классе был метод `register()`. В методе `register()` вы можете **только** регистрировать свои классы (bindings) в [сервис-контейнере](/docs/5.0/container). Слушателей событий (event listeners), роуты и фильтры роутов там регистрировать **нельзя**. +Сервис-провайдеры должны расширять (extends) класс `Illuminate\Support\ServiceProvider`. Это абстрактный класс, который требует, чтобы в наследуемом классе был метод `register()`. В методе `register()` вы можете **только** регистрировать свои классы (bindings) в [сервис-контейнере](/docs/{{version}}/container). Слушателей событий (event listeners), роуты и фильтры роутов там регистрировать **нельзя**. С помощью Artisan можно легко создать нового провайдера, используя команду `make:provider`: @@ -55,7 +55,7 @@ Service providers (сервис-провайдеры, дословно - «по } -В `register()` мы регистрируем (bind) как singleton (т.е. класс не будет переинициализироваться после вызова из контейнера) в сервис-контейнере класс работы с базой данных Riak. Если для вас этот код выглядит абракадаброй, не беспокойтесь, работу [сервис-контейнера](/docs/5.0/container) мы рассмотрим позже. +В `register()` мы регистрируем (bind) как singleton (т.е. класс не будет переинициализироваться после вызова из контейнера) в сервис-контейнере класс работы с базой данных Riak. Если для вас этот код выглядит абракадаброй, не беспокойтесь, работу [сервис-контейнера](/docs/{{version}}/container) мы рассмотрим позже. Неймспейс `App\Providers`, в котором находится этот класс сервис-провайдера - дефолтное место для хранения сервис-провайдеров вашего Laravel-приложения, но вы можете располагать свои сервис-провайдеры где угодно внутри вашей PSR-4 папки (если вы не меняли `composer.json`, то это папка `app`). @@ -117,7 +117,7 @@ Service providers (сервис-провайдеры, дословно - «по ## Отложенные провайдеры -Если ваш провайдер **только** регистрирует (bind) классы в [сервис-контейнере](/docs/5.0/container), то вы можете отложить вызов его метода `register()` до момента, когда эти классы будут затребованы из сервис-контейнера. Это позволит не дергать файловую систему каждый запрос в попытках загрузить файл с нужным классом с диска. +Если ваш провайдер **только** регистрирует (bind) классы в [сервис-контейнере](/docs/{{version}}/container), то вы можете отложить вызов его метода `register()` до момента, когда эти классы будут затребованы из сервис-контейнера. Это позволит не дергать файловую систему каждый запрос в попытках загрузить файл с нужным классом с диска. Для того, чтобы сделать сервис-провайдер отложенным, установите свойство `defer` в `true` и определить метод `provides()`, чтобы фреймворк знал, какие классы биндятся (регистрируются в сервис-контейнере, «связываются») в вашем провайдере. diff --git a/queries.md b/queries.md index 09805e92..6ff6ea92 100644 --- a/queries.md +++ b/queries.md @@ -333,6 +333,6 @@ SELECT с 'lock for update': В этом примере результаты выборки будут сохранены в кэше на 10 минут. В течении этого времени данный запрос не будет отправляться к СУБД - вместо этого результат будет получен из системы кэширования, указанного по умолчанию в вашем файле настроек. -Если система кэширования, которую вы выбрали, поддерживает [тэги](/docs/cache#cache-tags), вы можете их указать в запросе: +Если система кэширования, которую вы выбрали, поддерживает [тэги](/docs/{{version}}/cache#cache-tags), вы можете их указать в запросе: $users = DB::table('users')->cacheTags(array('people', 'authors'))->remember(10)->get(); \ No newline at end of file diff --git a/queues.md b/queues.md index 984596ff..bc5d1273 100644 --- a/queues.md +++ b/queues.md @@ -47,7 +47,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce Queue::push(new SendEmail($message)); -> **Примечание:** В этом примере мы используем фасад `Queue` для отправки задачи в очередь. Однако, лучшим способом было бы воспользоваться [командной шиной](/docs/5.0/bus) и запустить команду, которая настроена во время своей работы уходить в очередь и исполняться там. Дальше по тексту мы продолжим использовать фасад `Queue`, однако настоятельно рекомендуем ознакомиться с командной шиной, так как этот концепт позволяет создавать команды, которые можно запускать универсально - и синхронно и в фоне, через очереди. +> **Примечание:** В этом примере мы используем фасад `Queue` для отправки задачи в очередь. Однако, лучшим способом было бы воспользоваться [командной шиной](/docs/{{version}}/bus) и запустить команду, которая настроена во время своей работы уходить в очередь и исполняться там. Дальше по тексту мы продолжим использовать фасад `Queue`, однако настоятельно рекомендуем ознакомиться с командной шиной, так как этот концепт позволяет создавать команды, которые можно запускать универсально - и синхронно и в фоне, через очереди. По умолчанию `make:command` создает "self-handling" команду, то есть содержащую метод и коструктор класса-команды и метод `handle`, который исполняет команду. Вы можете передать в этот метод необходимые для работы классы в виде аргументов: diff --git a/redis.md b/redis.md index 3efd54bf..ddb8d200 100644 --- a/redis.md +++ b/redis.md @@ -68,7 +68,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce $values = Redis::lrange('names', 5, 10); -> **Примечание:** Laravel поставляется с драйверами Redis для [кэширования](/docs/5.0/cache) и [сессий](/docs/5.0/session). +> **Примечание:** Laravel поставляется с драйверами Redis для [кэширования](/docs/{{version}}/cache) и [сессий](/docs/{{version}}/session). ## Конвейер diff --git a/releases.md b/releases.md index b9ff0d31..3e81163f 100644 --- a/releases.md +++ b/releases.md @@ -25,7 +25,7 @@ git 015017cc1957c677f20ce1d5c8d9cd1e71135d41 Все основные компоненты Laravel реализуют интерфейсы, размещенные в репозитории `illuminate/contracts`. У этого репозитория нет внешних зависимостей, это скелет фреймворка. Этот удобный корневой набор интерфейсов, который вы можете использовать в DI (dependency injection) своих классов, может служить альтернативой фасадам. -[Документация по контрактам](/docs/5.0/contracts). +[Документация по контрактам](/docs/{{version}}/contracts). ### Кэширование роутов @@ -35,11 +35,11 @@ git 015017cc1957c677f20ce1d5c8d9cd1e71135d41 В Laravel 5 появились так называемые middlewares, посредники, которые выполняют роль, которая раньше возлагалась на фильтры роутов. Фильтры роутов продолжают поддерживаться, но все встроенные фильтры HTTP-запросов, как то CSRF-фильтрация, проверка аутентификации, переехали в middlewares. Свои обработчики HTTP-запроса тоже лучше писать в виде middlewares. -[Документация по middleware](/docs/5.0/middleware). +[Документация по middleware](/docs/{{version}}/middleware). ### DI (dependency injection) в методах контроллеров -Основной способ передачи классов для использования в вашем контроллере - указать их (type-hint) в аргументах конструктора вашего контроллера. Так как Laravel создает контроллеры и другие классы фреймворка при помощи [сервис-контейнера](/docs/5.0/container), он автоматически создает ожидаемые в аргументах конструктора классы и автоматически же подставляет их в вызов контроллера. +Основной способ передачи классов для использования в вашем контроллере - указать их (type-hint) в аргументах конструктора вашего контроллера. Так как Laravel создает контроллеры и другие классы фреймворка при помощи [сервис-контейнера](/docs/{{version}}/container), он автоматически создает ожидаемые в аргументах конструктора классы и автоматически же подставляет их в вызов контроллера. Теперь все вышеописанное работает не только для конструктора контроллера, но и для всех его методов. @@ -82,7 +82,7 @@ Laravel 5 содержит все необходимые миграции, ко } -[Документация по событиям](/docs/5.0/events). +[Документация по событиям](/docs/{{version}}/events). ### Командная шина @@ -126,7 +126,7 @@ Laravel 5 содержит все необходимые миграции, ко Команды - прекрасное средство для разбивки функционала вашего приложения на изолированные части и разгрузки ваших контроллеров. -[Документация по командной шине](/docs/5.0/bus) +[Документация по командной шине](/docs/{{version}}/bus) ### Реализация очереди в БД @@ -142,7 +142,7 @@ In the past, developers have generated a Cron entry for each console command the $schedule->command('artisan:command')->dailyAt('15:00'); -[Документация по периодическому запуску команд](/docs/5.0/artisan#scheduling-artisan-commands). +[Документация по периодическому запуску команд](/docs/{{version}}/artisan#scheduling-artisan-commands). ### Tinker / Psysh @@ -153,13 +153,13 @@ In the past, developers have generated a Cron entry for each console command the В Laravel 5 больше нет папок для конфигов, специфичных для определённой среды выполнения. Все конфиги теперь хранятся в одной папке, а значения, специфичные среды выполнения хранятся в файле `.env`. Кроме того, название среды выполнения тоже задается в файле `.env` ! Больше никаких привязок к имени машины и флага `--env` в artisan-командах. Laravel 5 использует библиотеку [DotEnv](https://github.com/vlucas/phpdotenv) от Vance Lucas. -[Документация по настройке среды приложения](/docs/5.0/configuration#environment-configuration). +[Документация по настройке среды приложения](/docs/{{version}}/configuration#environment-configuration). ### Laravel Elixir Laravel Elixir от Jeffrey Way - это инструмент для сборки css и js вашего приложения. Если вы слышали о Grunt или Gulp, но использование их казалось вам слишком сложным - попробуйте Elixir. Elixir представляет собой удобную надстройку над Gulp. С помощью него вы легко сможете компилировать Less, Sass или CoffeeScript. Он даже может автоматически запускать тесты за вас ! -[Документация по Laravel Elixir](/docs/5.0/elixir). +[Документация по Laravel Elixir](/docs/{{version}}/elixir). ### Laravel Socialite @@ -177,7 +177,7 @@ Laravel Socialite - пакет, совместимый с Laravel 5.0+ для а Больше нет нужды подбирать работающие библиотеки. Все просто работает! -[Документация по аутентификации через соцсети](/docs/5.0/authentication#social-authentication). +[Документация по аутентификации через соцсети](/docs/{{version}}/authentication#social-authentication). ### Облачная файловая система @@ -185,7 +185,7 @@ Laravel 5 содержит [Flysystem](https://github.com/thephpleague/flysystem Storage::put('file.txt', 'contents'); -[Документация по Flysystem](/docs/5.0/filesystem). +[Документация по Flysystem](/docs/{{version}}/filesystem). ### Form Requests @@ -219,7 +219,7 @@ Laravel 5 содержит [Flysystem](https://github.com/thephpleague/flysystem var_dump($request->input()); } -Когда сервис-контейнер видит, что в метод контроллера подключается класс типа `FormRequest`, запускается **автоматическая валидация** пользовательского ввода по правилам, заявленным в подключаемом классе. Если валидация не проходит, произойдет автоматический редирект с передачей ошибок валидации через сессии. **Валидация форм еще никогда не была такой простой**. Узнать больше про реквест-классы можно в соответствующей главе [документации](/docs/5.0/validation#form-requests). +Когда сервис-контейнер видит, что в метод контроллера подключается класс типа `FormRequest`, запускается **автоматическая валидация** пользовательского ввода по правилам, заявленным в подключаемом классе. Если валидация не проходит, произойдет автоматический редирект с передачей ошибок валидации через сессии. **Валидация форм еще никогда не была такой простой**. Узнать больше про реквест-классы можно в соответствующей главе [документации](/docs/{{version}}/validation#form-requests). ### Валидация в контроллерах @@ -235,7 +235,7 @@ Laravel 5 содержит [Flysystem](https://github.com/thephpleague/flysystem Вам не нужно контролировать результат валидации. Если валидация не удалась, фреймворк сам сделает редирект на предыдущую страницу, добавив в сессию сообщения об ошибках валидации и старый пользовательский ввод для отображения в форме. Или, если это был AJAX-запрос, вернёт соответствующий JSON. -[Документация по валидации в контроллерах](/docs/5.0/validation#controller-validation). +[Документация по валидации в контроллерах](/docs/{{version}}/validation#controller-validation). ### Новые генераторы diff --git a/requests.md b/requests.md index e1d7bcda..f2a6c459 100644 --- a/requests.md +++ b/requests.md @@ -24,7 +24,7 @@ git 4deba2bfca6636d5cdcede3f2068eff3b59c15ce ### При помощи DI (dependency injection) -Можно получить объект HTTP-запроса при помощи DI (dependency injection, внедрение зависимости). Способ заключается в том, что в аргументы конструктора контроллера помещается (type-hint) объект, который нам нужен, и Laravel, когда создает контроллер, создает этот объект (см. [сервис-контейнер](/docs/5.0/container)) и подает на вход конструктору контроллера: +Можно получить объект HTTP-запроса при помощи DI (dependency injection, внедрение зависимости). Способ заключается в том, что в аргументы конструктора контроллера помещается (type-hint) объект, который нам нужен, и Laravel, когда создает контроллер, создает этот объект (см. [сервис-контейнер](/docs/{{version}}/container)) и подает на вход конструктору контроллера: with('message', 'Login Failed'); @@ -98,7 +98,7 @@ HTTP-Response - это ответ фреймворка, который отда #### Редирект на метод определённого контроллера -Вы можете также сделать редирект на [экшн](/docs/5.0/controllers) заданного контроллера: +Вы можете также сделать редирект на [экшн](/docs/{{version}}/controllers) заданного контроллера: return redirect()->action('App\Http\Controllers\HomeController@index'); @@ -115,7 +115,7 @@ HTTP-Response - это ответ фреймворка, который отда ## Особые HTTP-ответы -Если хэлпер `response()` вызывается без параметров, он возвращает имплементацию [контракта](/docs/5.0/contracts) `Illuminate\Contracts\Routing\ResponseFactory`, которая содержит несколько методов для генерации HTTP-ответа. +Если хэлпер `response()` вызывается без параметров, он возвращает имплементацию [контракта](/docs/{{version}}/contracts) `Illuminate\Contracts\Routing\ResponseFactory`, которая содержит несколько методов для генерации HTTP-ответа. #### Отдача JSON @@ -141,7 +141,7 @@ HTTP-Response - это ответ фреймворка, который отда Вы можете оформить свой вариант HTTP-ответа в виде макроса, чтобы использовать его в других роутах или контроллерах в короткой форме. -HTTP-макросы определяются в методе `boot()` [сервис-провайдера](/docs/5.0/providers): +HTTP-макросы определяются в методе `boot()` [сервис-провайдера](/docs/{{version}}/providers): "> -То же самое, но с использованием шаблонизатора [Blade](/docs/5.0/templates): +То же самое, но с использованием шаблонизатора [Blade](/docs/{{version}}/templates): -You do not need to manually verify the CSRF token on POST, PUT, or DELETE requests. The `VerifyCsrfToken` [HTTP middleware](/docs/5.0/middleware) will verify token in the request input matches the token stored in the session. +You do not need to manually verify the CSRF token on POST, PUT, or DELETE requests. The `VerifyCsrfToken` [HTTP middleware](/docs/{{version}}/middleware) will verify token in the request input matches the token stored in the session. Вам не нужно проверять вручную соответствие CSRF-токена сессионному в POST, PUT и DELETE запросах, middleware (посредник) `VerifyCsrfToken` делает это автоматически. Вдобавок к полю `_token`, проверяется еще и HTTP-заголовок `X-CSRF-TOKEN`, который часто используется в Javascript-фреймворках. @@ -317,4 +317,4 @@ HTML-формы не поддерживают методы HTTP-запроса ` Второй - вы можете сами бросить исключение `Symfony\Component\HttpKernel\Exception\NotFoundHttpException`. -Смотрите также секцию [errors](/docs/5.0/errors#http-exceptions) документации. +Смотрите также секцию [errors](/docs/{{version}}/errors#http-exceptions) документации. diff --git a/security.md b/security.md index 4d9b836e..7695aff1 100644 --- a/security.md +++ b/security.md @@ -60,7 +60,7 @@ Laravel стремится сделать реализацию авториза Заметьте, что поле `email` не обязательно и оно используется только для примера. Вы должны использовать любое поле, которое соответствует имени пользователя в вашей БД. Метод `Redirect::intended` отправит пользователя на URL, который он пытался просмотреть до того, как запрос был перехвачен фильтром аутентификации. Также в этом методе можно задать дополнительный URL, куда будет осуществлен переход, если первый URL не доступен. -Когда вызывается метод `attempt`, запускается [событие](/docs/events) `auth.attempt`. При успешной авторизации также запускается событие `auth.login`. +Когда вызывается метод `attempt`, запускается [событие](/docs/{{version}}/events) `auth.attempt`. При успешной авторизации также запускается событие `auth.login`. Для определения того, авторизован ли пользователь или нет, можно использовать метод `check. @@ -235,7 +235,7 @@ HTTP Basic Authentication - простой и быстрый способ аут php artisan auth:reminders-controller -Созданный контроллер содержит метод `getRemind`, который показывает форму для напоминания пароля. Вам надо создать эту форму во вьюхе `password.remind` (файл remind.blade.php в папке views/password - см. [view](/docs/responses#views)). Форма должна отправлять POST c email на метод `postRemind` +Созданный контроллер содержит метод `getRemind`, который показывает форму для напоминания пароля. Вам надо создать эту форму во вьюхе `password.remind` (файл remind.blade.php в папке views/password - см. [view](/docs/{{version}}/responses#views)). Форма должна отправлять POST c email на метод `postRemind` Простейший пример `password.remind`: @@ -304,4 +304,4 @@ Laravel предоставляет функции устойчивого шиф ## Драйвера аутентификации -Laravel из коробки предлагает для аутентификации драйвера `database` и `eloquent`. Чтобы узнать больше о том, как добавлять свои драйвера, изучите [документацию по расширению системы аутентификации](/docs/extending#authentication). \ No newline at end of file +Laravel из коробки предлагает для аутентификации драйвера `database` и `eloquent`. Чтобы узнать больше о том, как добавлять свои драйвера, изучите [документацию по расширению системы аутентификации](/docs/{{version}}/extending#authentication). \ No newline at end of file diff --git a/session.md b/session.md index 9ffa53c1..58e5b672 100644 --- a/session.md +++ b/session.md @@ -119,4 +119,4 @@ Laravel использует имя ключа `flash` для внутренни - `memcached` и `redis` - используются быстрые кэширующие хранилища пар ключ/значение - memcached или redis. - `array` - данные содержатся в виде простых массивов PHP и не будут сохраняться между запросами. -> **Примечание:** драйвер `array` обычно используется для [юнит-тестов](/docs/5.0/testing), так как он на самом деле не сохраняет данные для последующих запросов. +> **Примечание:** драйвер `array` обычно используется для [юнит-тестов](/docs/{{version}}/testing), так как он на самом деле не сохраняет данные для последующих запросов. diff --git a/ssh.md b/ssh.md index fa4e0d08..b6bfa614 100644 --- a/ssh.md +++ b/ssh.md @@ -103,7 +103,7 @@ Laravel имеет удобное средство для просмотра п - [Уведомления](#envoy-notifications) - [Обновление Envoy](#envoy-updating-envoy) -Envoy - это инструмент для запуска задач на удаленных серверах. Он предоставляет простой синтаксис для записи операций деплоя, запуска artisan-команд и т.п., который базируется на синтаксисе [Blade](/docs/templates#blade-templating). +Envoy - это инструмент для запуска задач на удаленных серверах. Он предоставляет простой синтаксис для записи операций деплоя, запуска artisan-команд и т.п., который базируется на синтаксисе [Blade](/docs/{{version}}/templates#blade-templating). > **Примечание:** Envoy требует PHP 5.4 и выше, запускается на Mac или Linux. diff --git a/testing.md b/testing.md index 07707d11..a2b3360f 100644 --- a/testing.md +++ b/testing.md @@ -198,7 +198,7 @@ Laravel предоставляет несколько `assert`-методов, $this->seed($connection); -Больше информации на тему начальных данных доступно в разделе [Миграции и начальные данные](/docs/5.0/migrations#database-seeding). +Больше информации на тему начальных данных доступно в разделе [Миграции и начальные данные](/docs/{{version}}/migrations#database-seeding). ## Ресет IoC-контейнера Laravel diff --git a/upgrade.md b/upgrade.md index 823f3611..bcffa9a5 100644 --- a/upgrade.md +++ b/upgrade.md @@ -17,7 +17,7 @@ git 5d31dee0e7ca8e7ab85949bbbda39f15db2678bf Общие рекомендации к переходу на Laravel 5.0 таковы - нужно создать новое приложение Laravel и скопировать в него классы и файлы из старого приложения Laravel 4.2, а именно контроллеры, роуты, Eloquent-модели, команды Artisan, статические файлы (css/js), отображения (views) и т.п. в новые места, по пути соответственно их изменив. -Итак, [установите приложение Laravel 5.0](/docs/5.0/installation) в новую папку на своей локальной машине. Дальше мы рассмотрим процесс миграции поподробнее. +Итак, [установите приложение Laravel 5.0](/docs/{{version}}/installation) в новую папку на своей локальной машине. Дальше мы рассмотрим процесс миграции поподробнее. ### Зависимости Composer и пакеты @@ -37,7 +37,7 @@ git 5d31dee0e7ca8e7ab85949bbbda39f15db2678bf > **Примечание:** Название среды выполнения теперь задается не в привязке к имени машины как в Laravel 4.х, а в файле `.env` в параметре `APP_ENV`. -[Документация по настройке среды выполнения](/docs/5.0/configuration#environment-configuration). +[Документация по настройке среды выполнения](/docs/{{version}}/configuration#environment-configuration). > **Примечание:** Вы должны создать корректный `.env` перед тем как разворачивать (deploy) ваше Laravel 5 приложение на продакшн (основном) сервере. @@ -70,7 +70,7 @@ Laravel 5.0 больше не использует систему разгран ### Глобальная фильтрация CSRF -Теперь [CSRF защита](/docs/5.0/routing#csrf-protection) включена по дефолту для всех роутов. Чтобы вернуть старое поведение и не проверять CSRF, удалите следующую строку из массива `middleware` класса `App\Http\Kernel`: +Теперь [CSRF защита](/docs/{{version}}/routing#csrf-protection) включена по дефолту для всех роутов. Чтобы вернуть старое поведение и не проверять CSRF, удалите следующую строку из массива `middleware` класса `App\Http\Kernel`: 'App\Http\Middleware\VerifyCsrfToken', @@ -80,7 +80,7 @@ Laravel 5.0 больше не использует систему разгран После этого вы можете использовать в роутах конструкцию `['middleware' => 'csrf']` для проверки CSRF. -[Документация по middleware](/docs/5.0/middleware). +[Документация по middleware](/docs/{{version}}/middleware). ### Модели Eloquent @@ -92,7 +92,7 @@ Laravel 5.0 больше не использует систему разгран Eloquent больше не использует метод `remember()` для кэширования запросов. Вы должны явно кэшировать результаты запросов при помощи `Cache::remember`. -[Документация по кэшированию](/docs/5.0/cache). +[Документация по кэшированию](/docs/{{version}}/cache). ### Модель User и аутентификация @@ -132,7 +132,7 @@ use Authenticatable, CanResetPassword; ### Laravel Cashier -Имя трейта и интерфейса, которые использует [Laravel Cashier](/docs/5.0/billing) теперь изменены. Вместо трейта `BillableTrait` используйте `Laravel\Cashier\Billable`. Вместо имплементации интерфейса `Laravel\Cashier\BillableInterface` используйте `Laravel\Cashier\Contracts\Billable`. +Имя трейта и интерфейса, которые использует [Laravel Cashier](/docs/{{version}}/billing) теперь изменены. Вместо трейта `BillableTrait` используйте `Laravel\Cashier\Billable`. Вместо имплементации интерфейса `Laravel\Cashier\BillableInterface` используйте `Laravel\Cashier\Contracts\Billable`. ### Artisan-команды @@ -146,7 +146,7 @@ use Authenticatable, CanResetPassword; ### Глобальные IoC-биндинги -Если вы что-то добавляли в [IoC](/docs/5.0/container) в файле `start/global.php`, переместите этот код в метод `register` файла `app/Providers/AppServiceProvider.php`. Вам, возможно, потребуется импортировать фасад `App`. +Если вы что-то добавляли в [IoC](/docs/{{version}}/container) в файле `start/global.php`, переместите этот код в метод `register` файла `app/Providers/AppServiceProvider.php`. Вам, возможно, потребуется импортировать фасад `App`. Если хотите, можете разложить эти биндинги по разным сервис-провайдерам, исходя из их логической принадлежности. @@ -356,7 +356,7 @@ If `app/controllers/BaseController.php` has a `use` statement at the top, change ### Password Reminders Updates -Password reminders have been overhauled for greater flexibility. You may examine the new stub controller by running the `php artisan auth:reminders-controller` Artisan command. You may also browse the [updated documentation](/docs/security#password-reminders-and-reset) and update your application accordingly. +Password reminders have been overhauled for greater flexibility. You may examine the new stub controller by running the `php artisan auth:reminders-controller` Artisan command. You may also browse the [updated documentation](/docs/{{version}}/security#password-reminders-and-reset) and update your application accordingly. Update your `app/lang/en/reminders.php` language file to match [this updated file](https://github.com/laravel/laravel/blob/master/app/lang/en/reminders.php). diff --git a/validation.md b/validation.md index 2c938c47..ce08864f 100644 --- a/validation.md +++ b/validation.md @@ -711,7 +711,7 @@ Laravel изначально содержит множество полезны #### Регистрация нового класса `Validator` -Затем вам нужно зарегистрировать это расширение валидации. Сделать это можно, например, в вашем [сервис-провайдере](/docs/ioc#service-providers) или в ваших [старт-файлах](/docs/lifecycle#start-files). +Затем вам нужно зарегистрировать это расширение валидации. Сделать это можно, например, в вашем [сервис-провайдере](/docs/{{version}}/ioc#service-providers) или в ваших [старт-файлах](/docs/{{version}}/lifecycle#start-files). Validator::resolver(function($translator, $data, $rules, $messages) { diff --git a/views.md b/views.md index 1b3c4714..ef0a0fc9 100644 --- a/views.md +++ b/views.md @@ -54,7 +54,7 @@ Views (представления, отображения, шаблоны) об #### Передача данных во все шаблоны -Иногда вам нужно передать данные во все шаблоны (например, это может быть залогиненый пользователь). Вы можете сделать это несколькими путями: при помощи хэлпера view(), используя `Illuminate\Contracts\View\Factory` [contract](/docs/5.0/contracts) или при помощи общего шаблона (wildcard) композера. +Иногда вам нужно передать данные во все шаблоны (например, это может быть залогиненый пользователь). Вы можете сделать это несколькими путями: при помощи хэлпера view(), используя `Illuminate\Contracts\View\Factory` [contract](/docs/{{version}}/contracts) или при помощи общего шаблона (wildcard) композера. При помощи хэлпера это можно сделать вот так: @@ -90,7 +90,7 @@ Views (представления, отображения, шаблоны) об ### Определение композера -Регистрировать композеры можно внутри [сервис-провайдера](/docs/5.0/providers). Мы будем использовать фасад `View` для того, чтобы получить доступ к имплементации контракта `Illuminate\Contracts\View\Factory`: +Регистрировать композеры можно внутри [сервис-провайдера](/docs/{{version}}/providers). Мы будем использовать фасад `View` для того, чтобы получить доступ к имплементации контракта `Illuminate\Contracts\View\Factory`: **Примечание:** Все композеры берутся из [сервис-контейнера](/docs/5.0/container), поэтому вы можете указать необходимые зависимости в конструкторе композера - они будут автоматически поданы ему. +> **Примечание:** Все композеры берутся из [сервис-контейнера](/docs/{{version}}/container), поэтому вы можете указать необходимые зависимости в конструкторе композера - они будут автоматически поданы ему. #### Wildcards имен шаблонов композеров