- [Вступление](#Вступление)
- [Кто использует Laravel?](#Кто-использует-Laravel?)
- [Что делает Laravel особенным?](#Особенности-Laravel)
- [Структура приложения](#Структура-приложения)
- [Сообщество Laravel](#Сообщество-Laravel)
- [Информация о лицензировании](#Информация-о-лицензировании)
## Вступление
Добро пожаловать в Laravel. Эта документация разработана и как учебное пособие, и как справочник по функциям фреймворка. Хотя вы можете использовать статьи документации в произвольном порядке, последовательное изучение глав принесет больший успех в понимании концепции Laravel.
## Кто использует Laravel?
Laravel это мощный фреймворк, обладающий гибкостью и выразительностью. Новые пользователи Laravel могут пользоваться такой-же легкостью в разработке, какой обладают многие популярные легкие фреймворки. Более продвинутые пользователи оценят возможности модульной компоновки кода, которые возможны только с использованием особенностей Laravel. Гибкость Laravel позволит вам обновлять и изменять приложения в будущем благодаря краткости и выразительности легко читаемого кода.
## Что делает Laravel особенным?
Laravel обладает многими отличительными особенностями, которые выделяют его среди других фреймворков, делая его удобным для разработки. Некоторые ключевые особенности, позволяющие быстрее и удобнее создавать приложения:
- **Bundles (пакеты)** - Модульная система управления пакетами Laravel. В репозитории [The Laravel Bundle Repository](http://bundles.laravel.com/) вы найдете много пакетов, которые с легкостью интегрируете в ваше приложение.Установить пакет легко простым копированием из репозитория в директорию с пакетами или использованием инструмента командной строки **Artisan** для автоматической установки.
- **Eloquent ORM** является самым передовой реализацией доступа к PHP ActiveRecord. С возможностью легкого построения запросов для получения полного контроля над данными со всеми удобствами ActiveRecord. Eloquent изначально поддерживает все методы построителя запросов Laravel Fluent.
- **Логика приложения** может быть построена как с помощью контроллеров (в рамках **MVC**), так и с помощью простых конструкций в маршрутизаторе приложения, аналогично фреймворку Sinatra. Это позволяет просто и быстро создавать как простые приложения, так и массивные приложения **enterprise** класса.
- **Обратная маршрутизация** позволяет вам создавать ссылки на именованные маршруты. При создании ссылки просто укажите имя маршрута и Laravel автоматически вставит правильный URI. Это позволит вам в дальнейшем свободно изменять маршруты, а Laravel обновит все ссылки.
- **Restful Контроллеры** обеспечивают дополнительную возможность разделения логики **GET** и **POST** запросов. In a login example your controller's get_login() action would serve up the form and your controller's post_login() action would accept the posted form, validate, and either redirect to the login form with an error message or redirect your user to their dashboard.
- **Автозагрузка классов** освобождает вас от необходимости создания сложных конфигураций автозагрузки и использования ненужных компонентов, когда они не нужны. Нужно использовать библиотеку или модель? Не беспокойтесь о загрузке, просто исользуйте их. Об автозагрузке позаботится Laravel.
- **View Composers (Построитель представлений)** представляет собой блок кода, который выполняется, когда загружается представление. Хороший пример этого может быть боковой блок навигации, который содержит список случайных записей в блоге. Ваш "построитель" будет содержать логику загрузки записей блога, и все, что вам нужно, это загрузить представление, и все будет готово. Это избавит вас от необходимости убеждаться, что ваши контроллеры загрузили кучу данных из модели представления, которые не имеют отношения к содержанию страницы.
- **The IoC container** (Inversion of Control) дает метод создания новых объектов и дополнительно создания экземпляров и привязки объектов-одиночек (singletons). Концепция IoC значит, что вам скорее всего, очень редко понадобится загружать сторонние библиотеки. Это означает, что вы будете иметь доступ к вашим объектам без необходимости иметь дело с негибкой монолитной структурой.
- **Migrations (Миграции)** контролируют версии ваших схем баз данных и непосредственно интегрируют их в Laravel. Вы можете генерировать базы и запускать миграции при помощи утилиты командной строки "Artisan". Как только кто-то другой изменит схему данных, вы можете обновить свой локальный репозиторий и запустить миграцию. Ваши схемы данных обновлены!
- **Unit-Testing (Тесты модулей)** - важная часть Laravel. Laravel использует сотни тестов для того, чтобы неожиданные изменения не разрушили ваше приложение. Это одна из причин, включающая Laravel в ряд самых надежных продуктов. Laravel позволяет очень просто создать тесты для модулей приложения. Запустить тесты можно, используя утилиту командной строки "Artisan".
- **Automatic Pagination (Автоматическое разбиение на страницы)** избавляет логику приложения от кучи конфигураций для разбиения контента на страницы. Вместо сложных операций с базой данных нужно просто указать Laravel на постраничный вывод. Laravel автоматически сделает это. Постраничный вывод Laravel разработан для очень простого использования и легко изменяется. Это важное замечание, указывающее на то, что вы можете использовать не только автоматическую пагинацию, но и можете в любой момент настроить ее под свои нужды.
Все, указанное выше, только немногие особенности Laravel, делающие его удобным для разработки. Более подробно со всеми особенностями можно ознакомиться, изучив документацию.
## Структура приложения
Структура каталогов Laravel разработана аналогично другим, уже знакомым вам фреймворкам. Приложения любой сложности и размера могуть быть легко созданы так же, как и в других фреймворках.
Опираясь на исключительные возможности архитектуры Laravel, разработчики могут создать свою собственную архитектуру приложения. Это может найти применение в сложных проектах, например в системах управления контентом.
Laravel обладает такой исключительной гибкостью архитектуры.
Везде в документации мы будем указывать расположение по умолчанию для объявлений в случае необходимости.
## Сообщество Laravel
Laravel удачно опирается на быстро растущее, дружелюбное сообщество энтузиастов. [Laravel Forums](http://forums.laravel.com) чудесное место, где вы сможете получить помощь и поддержку.
Многие из нас все время болтаются в #laravel IRC channel на FreeNode. [Эта ссылка приведет вас в раздел форума, где вы узнаете, как присоединиться к нам.](http://forums.laravel.com/viewtopic.php?id=671) Мы приглашаем вас к общению - задавайте вопросы, консультируйтесь. Мы любим Laravel, и каждый участник нам не чужой!
## Информация о лицензировании
Laravel принадлежит к свободным проектам и распространяется по лицензии [MIT License](http://www.opensource.org/licenses/mit-license.php).