Laravel что это?

Со временем многие разработчики приходят к тому, что проекты нужно реализовать все сложнее, а все обычные CMS либо банально не дотягивают по своим возможностям до желаемого результата, либо вроде как и могут предоставить весь необходимый нам функционал, но проект получается очень громоздким, с кучей лишнего кода, на загрузку станиц уходят лишние, такие драгоценные, секунды…

В таком случае, при наличии достаточного багажа знаний в соответствующих областях, нам на выручку приходят фреймворки, которые позволяют реализовывать проекты заточенные исключительно под наши нужды.

Одним из таких PHP фреймворков и является Laravel. Впрочем, «одним из» это крайне скромно сказано. Многие специалисты считают эту платформу для разработки одной из наиболее многообещающих на сегодняшний день, что подтверждается активным ростом веб-разработчиков переходящих на использование Laravel с того же Yii, который пока хоть и не потерял позиции самого популярного PHP фреймворка в России, но определенно постепенно идет в этом направлении уступая дорогу более практичным конкурентам.

Преимущества Laravel

Использование Composer

Данный менеджер зависимостей позволяет простым и удобным способом подгружать библиотеки необходимые для работы каждого конкретного проекта.

Его отличительной чертой является то, что он устанавливает их под каждый проект локально, что очень удобно. В целом его работа выглядит примерно так:

  1. У нас есть проект использующий для своей работы ряд библиотек с их зависимостями.
  2. В коде описаны необходимые для его работы библиотеки.
  3. Composer сам найдет соответствующие версии библиотек и установит их на наш проект.

Помимо удобства и функциональности, большим преимуществом Composer является поддержка версионности для приложения. Благодаря этому мы можем не переживать, что разворачивая наш проект на новой платформе у него возникнут проблемы с кодом.

Использование PHP 5.4

Начиная с 5 версии Laravel использует в работе стандарт PHP 5.4. Это не может не радовать, поскольку мы получаем в распоряжение полный функционал данного стандарта: типажи, замыкания функций и тд.

Обратите внимание, он не просто адаптирован под пятую версию PHP, он разработан под нее, с возможностью использования всех новейших возможностей.

Регулярный выход новых версий

Веб-разработчики использующие Laravel относительно продолжительное время уже давно могли заметить, что новые версии данного фреймворка выходят примерно каждые пол года.

Это существенный плюс при выборе фреймворка для работы, поскольку Вы можете быть уверены, что все находимые пользователями ошибки и недостатки исправляются настолько быстро, насколько это вообще в принципе возможно.

Использование Dotenv

Данная PHP библиотека значительно упрощает жизнь разработчиков в вопросах управления окружениями при создании и развертывании проектов.

Она позволяет быстро задать конфигурацию для каждого окружения, упрощая тем самым процедуру развертывания проекта.

Как пример использования можно рассмотреть хранение конфиденциальной информации (логины, пароли доступов к сайту и базам данных и тд) в файле .env.

Пример содержания подобного файла:

APP_ENV=production
DB_HOST=127.0.0.1
DB_DATABASE=myfirstdb
DB_USERNAME=superadm
DB_PASSWORD=s7l3h5ivhohjgo3

В целом, как Вы наверно уже поняли, данная библиотека применяется для хранения секретных данных в формате ключ-значение.

Поддержка PSR-4

К отличительным чертам Laravel можно отнести поддержку данного стандарта автозагрузки.

Это очень удобно, поскольку позволяет структурировать файлы Вашего проекта так, как Вам угодно, а не как того требуют требования фреймворка. Да, да, я не опечатался- PSR-4 не требует чтобы именно в этих папках содержались именно эти файлы, мы мы сами структурируем проект под себя.

Из коробки структура приложения будет выглядеть следующим образом:

Laravel структура каталогов файлов

Далее воспользовавшись простенькой командой:

php artisan app:name MyNameSpace

Мы можем создать собственное пространство имен приложения.

IoC-контейнер обратного управления

Инструмент поднимающий гибкость работы с PHP классами на новый уровень.

Он позволяет управлять зависимостями классов (снимать закодированные и подключать новые по ходу выполнения кода новые).

Он может применяться для извлечения классов без предварительной настройки:

class FooBar {
  public function __construct(Baz $baz)
  {
    $this->baz = $baz;
  }
}

Но это еще только цветочки.

При желании мы можем не просто управлять зависимостями отдельных классов, а добавлять зависимости на основании методов:

class OrderController extends BaseController {
  public function getIndex(Order $orders)
  {
    $all = $orders->all();
    return View::make('orders', compact('all'));
  }
}

При всем этом у нас нет ограничений по количеству добавляемых зависимостей.

Запросы форм

Этот функционал фреймворка предназначен для проверки запросов для контроллеров.

Он позволяет не только проверить корректность вводимых данных, а полноценно обработать запрос к контроллеру.

Eloquent ORM

Это используемый в Laravel шаблон для работы с БД.

Позволяет помимо стандартного набора команд для работы с БД использовать ряд интереснейших операций (наблюдатели модели, области запросов и тд).

Flysystem

Простой и элегантный инструмент. Применяется для работы с файловыми системами, которые базируются на облачных сервисах по типу dropbox.

Стоит отметить, что данный функционал идет с Laravel «из коробки».

Elixir

Еще один удобный инструмент применяемый для улучшения производительности наших приложений.

Позволяет максимально быстро и просто оптимизировать наш проект за счет сжатия и объединения CSS и JS файлов.

Поддержка HHVM

Еще один момент, который просто таки заставляет нас обратить внимание на Laravel, ведь это один из первых фреймворков полностью поддерживающих данную среду.

Для тех, кто не знает- HHVM новейшая среда для PHP от фейсбук, которая отличается своим быстродействием.

Так что для повышения скорости работы нашего проекта мы можем просто переключить приложение в данный режим работы.

Возможность использования Homestead

Среда для разработки что называется из «коробки». Включает в себя все необходимые (и уже настроенные как нужно) компоненты для работы над проектом.

Это экономит вагоны времени по настройке окружения под проект на локальной машине.

Rocketeer

Инструмент для быстрого развертывания проектов.

Может использоваться для любых проектов, разработанных на любых платформах, написанных на любых языках программирования.

Позволяет не только разворачивать все необходимые окружения проектов, но и быстро откатываться назад в случае возникновения проблем.

Сообщество Laravel

Стоит ли упоминать, что уже сегодня вокруг данного фреймворка собралось достаточно многочисленное и дружное сообщество, которое способно помочь новичкам в его освоении и решении проблем, с которыми они сами не в состоянии разобраться.

В подтверждение своих слов скажу только что по итогам 2014-го дода Laravel стал самым популярным PHP фреймворком на GitHub.

Подводя итоги

Можно долго рассуждать какой фреймворк лучше положить в фундамент вашего будущего проекта, в конце концов конкурентам Laravel порой действительно есть чем привлечь к себе новых пользователей.

Но стоит отдать должное тому факту, что на сегодняшний день это пожалуй наиболее динамично развивающийся проект в своей нише, а признание интернет-сообщества заслужить не так уж просто.