Laravel — пожалуй, лучшее, что случалось в PHP сообществе! Девиз этого фреймворка — «The PHP Framework For Web Artisans», что можно перевести как «PHP фреймворк для вэб-ремесленников». И это максимально точно описывает его концепцию. Вы просто разрабатываете приложение или сайт полостью сосредотачиваясь на создании продукта, всё остальное на себя берёт фреймворк.
Laravel интуитивно понятен и user-friendly к разработчику. В основе фреймворка лежат так называемые Symfony Components — компоненты которые лежат в основе другого одноимённого фреймворка Симфони, первая версия которого вышла 22 октября 2005, за 5 с лишним лет до появления Laravel.
Laravel вышел 11 июня 2011 и быстро стал популярен за счёт использования уже проверенных в бою симфони-компонент и более удобной работе с ними. В отличии от Symfony, Ларик интуитивно понятен и многие вещи можно реализовывать даже не заглядывая в документацию. Создатель фреймворка Taylor Otwell прочитал ваши мысли и создал такую архитектуру, которая наиболее актуальна в современном мире вэб-разработки.
Laravel это не только фреймворк, но и огромное количество дополнительных сервисов объединённых в единую экосистему. Например, Forge — специальный хостинг для ваших приложений и сайтов. Homestead, Envoyer — простая и удобная система для zero downtime деплоя в production, Horizon — админка для мониторинга Redis, Spark, StyleCI, Statamic и многие другие сервисы упростят разработку приложений.
Если бы я разрабатывал фреймворк для веб-сайтов, то он бы был очень сильно похож на Ларавел, даже если бы я не знал о его существовании.
Самоучитель и уроки Laravel
Здесь будут приведены ссылки на статьи и видео для новичков и продвинутых разработчиков. Список пополняется. Присылайте свои материалы для размещения!
Для новичков
В данной подборке собраны статьи
- Создать новый проект на Laravel 5.6: установка и настройка
- Как узнать что пользователь находится в Online в Laravel 5.6
- Подтверждение регистрации и верификация email в Laravel 5.6
- Роутинг в Laravel: настройка routes
- Шаблонизатор blade: трюки и хитрости
- Работа с датами и временем с помощью Carbon
- Авторизация с помощью модуля Auth
- Что такое Vue и зачем он в Laravel?
- Миграции: лучшие практики
- Работа с моделями: Eloquent Active Records
- Отношения между таблицами
- Collection как замена масивам
- Как сделать редирект в Laravel
- Зачем нужны Middleware?
- Лучшие практики валидации запросов
- Elixir
- Пагинация
- Хранилище файлов
- Сидирование данных и faker
- Логирование событий и ошибок
- Настройка Nginx
- Работа с websocket
Админки
Обзор компонентов позволяющих легко и просто создать бэкофис для приложении, в простонародии называемыми админками.
- Laravel Voyager — плюсы и минусы готовой админки
- SleepingOwl Admin
CMS
Обзор всевозможных систем управления содержимым (Content Management System).
Пакеты и библиотеки
Пакеты и компоненты созданные специально для Laravel, либо способы адаптации библиотек под этот фреймворк.
- Использование Telegram Core API (MTProto) на PHP
- Загрузка изображений в Laravel с помощью UploadImage
- Как сделать ЧПУ (Slug, ModRewrite, Seo Friendly Url) для Laravel
- Summernote — простой и мощный WYSIWYG редактор для Laravel
- Laravel backpack
Продвинутый уровень
Работа с ядром фреймворка, переопределение базовых свойств и компонент.
- Как в Laravel 5.5 и 5.4 получать select в виде массива, а не объекта
- Как в Laravel создать подключение к БД в runtime
- Как быстро загрузить код на продакшн в Laravel
- Парсинг HTML страниц с помощью DomCrawler в Laravel 5.6
Прочее
Сравнение с другими PHP фреймворками
В своей весовой категории Laravel вне конкуренции по возможностям. Аналогичный функционал предоставляют фреймворки Symfony и Yii, однако они более громозки, требуют чтения огромного количества документации и большего времени на разработку одного и того же функционала. Однако, он не значительно проигрывает им по производительности.

Сравнение PHP фреймворков по количеству запросов в секунду

Сравнение PHP фреймворков по потреблению памяти

Сравнение PHP фреймворков по времени выполнения запроса
С полным отчётом по сравнению фреймворков можно ознакомиться здесь.
Однако, у Laravel есть киллер-фича — легковесный аналог Lumen, микрофреймворк, который в любой момент можно проапгрейдить до полноценного Laravel или установить часть его компонентов.
Для каких целей не подойдёт Laravel?
К сожалению, Ларавел плохо подходит для highload-проектов, т.к. ядро фреймворка достаточно тяжёлое и его инициализация может занимать больше времени, чем полезный функционал самого приложения.
Также он не очень хорошо подходит для разработки консольных приложений и демонов по той же причине, хотя во фреймворке присутствуют компоненты для их создания. Даже для выполнения одной маленькой cli-команды будет грузиться всё ядро и инициализироваться все компоненты задействованные в приложении.
Сомнительным решением станет также разработка REST API и тому подобных сервисов, хотя бы по факту того, что что из коробки этот PHP-фреймворк не содержит компонент для удобной их реализации.
Нет, никто делать этого не запрещает, однако, приложения критичные к ресурсам и производительности лучше разрабатывать на других фреймворках или вообще на других более быстрых языках. Для создания прототипов, MVP и PoC таких систем Laravel отлично подойдёт. Но для сурового продакшена будет требовать в раз больше мощностей, чем приложения написанные на легковесных фреймворках.
Laravel для начинающих и чайников
Вам не придётся читать большое количество документации или книг, чтобы начать создавать сайты на Laravel. Достаточно пары дней чтобы с ноля создать свой небольшой вэб-проект, ознакомляясь с документацией по мере возникновения вопросов. Концепция фреймворка такова, что разработчику нужно думать только о логике самого приложения не беспокоясь о базах данных, средствах кеширования, хранении файлов и пользовательских сессиях.
Благодаря наличию множества фасадов легко реализуется абстрагирование от конкретных реализаций работы с тем или иным хранилищем. Всего одной строчкой в конфигурации можно перевести приложение с MySql на Postgres, с Memcache на Redis, а хранение файлов с локального хранилище на распределённые сервера Amazon. И т.п. Например, получить данные из быстрого кеша можно сделать так:
$geo = \Cache::tags(['geo'])->remember($ip, 60 * 24 * 7, function() use ($SxGeoHttp) { return $SxGeoHttp->getCityFull(); });
Ещё одна приятная вещь в Laravel — Fluent Interface, подход в архитектуре, благодаря которому можно строить цепочки вызовов, что делает код легко читаемым, а его написание в IDE становится максимально быстрым. Например, сделать запрос в БД можно таким образом:
$items = Like::query()->with('likeable')->orderByDesc('created_at')->whereUserId($id)->limit(13)->get();
Можно много что ещё сказать, но лучше 1 раз попробовать самому, чем 10 раз прочитать о чужом опыте. Начинайте прямо сейчас!