- [Вступление](#Вступление) - [Кто использует 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).