Laravel framework что это

Обновлено: 07.07.2024


Данная статья предназначена для начинающих веб-разработчиков, а также тех, кто хочет понять, для чего стоит изучить PHP-фреймворк Laravel и какую экосистему он нам предлагает. Статья написана на момент актуальности Laravel версии 5.4, в августе 2017 выйдет релиз Laravel 5.5, который предоставляет ещё больше возможностей.

Введение в веб-разработку: что было раньше и что сегодня

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

Инженер, программист или веб-разработчик?

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

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

Не секрет, что PHP считается языком программирования для разработки, на котором необходим минимальный набор знаний. Это язык программирования с очень низким порогом вхождения.

Буквально любой может взять и тут же вывести строку на экран. Именно поэтому опытные разработчики на любых языках программирования считают PHP-разработчиков «ненастоящими» разработчиками, а PHP – «ненастоящим» языком программирования.

Но возможно ли создать на PHP серьёзный продукт и как доказать другим, что PHP можно доверять? Если Вы из тех людей, которые считают PHP «несерьёзным» языком программирования, то советую дочитать до конца и, скорее всего, Вы измените своё мнение.

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

Мы будем говорить о разработке веб-проекта и о том, что сегодня необходимо знать веб-разработчику для успешного запуска веб-проекта, а главное – я попытаюсь показать, что

Laravel – это идеальное решение для тех, кто хочет быстро и грамотно создать безопасный и надёжный веб-проект, при этом всегда оставаясь на пике технологий веб-разработки.

Начало создания веб-проекта

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

Сам Laravel хоть и является PHP–фреймворком, но не стоит его недооценивать, ведь это целая экосистема для веб-разработки.

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

Этап первый – процесс написания кода

Вы можете работать на любой операционной системе, в том числе и на Windows. Нам необходима хорошая IDE (Интегрированная среда разработки (англ. Integrated Development Environment)) – рекомендую PhpStorm. Можете использовать текстовый редактор Atom или Sublime Text. Конечно, можно писать код и в обычном блокноте, например, Notepad++, но хорошая IDE – незаменимая вещь.

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

Многие считают, что «крутые» разработчики должны писать код в блокноте, но помнить по памяти названия функций – это одно, а не делать опечатки в коде, упростить и ускорить процесс разработки – это совсем другое. Главная задача – освоить все возможности IDE.

Кроме IDE нам необходимо будет установить Composer, именно через него мы и будем устанавливать (обновлять) Laravel, добавлять (обновлять) дополнительные пакеты в наш веб-проект.

Обязательно изучите работу с Composer, это очень важный и полезный инструмент.

Подробно изучите инструкцию по установке Laravel по этой ссылке.

Далее мы не будем описывать процесс написания кода, а предположим, что Вы уже установили IDE и Laravel.

После установки Laravel в коде сразу прописано отображение базовой страницы – этого достаточно, чтобы перейти к следующей части статьи.

Этап второй – тестирование кода

Для тестирования веб-проекта Вам не надо загружать файлы на FTP-сервер, устанавливать локальный Apache (тот же Denwer или XAMPP) – так делали много лет назад, а многие новички так делают до сих пор. Это неправильно и не спасёт от ошибок в коде. На сегодняшний день для этих задач есть соответствующие инструменты, которые сэкономят много времени и нервов.

Laravel предлагает нам установить Homestead.

Homestead – это образ операционной системы Ubuntu, в которой уже установлено всё необходимое.

С процессом установки и настройки Homestead Вы можете ознакомиться по ссылке.

Для установки образа нам понадобится Vagrant и VirtualBox. Благодаря данному образу Вы точно будете знать, какие модули надо установить и как поведёт себя Ваш код на Ubuntu. Вы также можете установить любой дополнительный софт.

Если кратко, то у Вас в системе появятся общие папки с кодом, которые будут доступны внутри образа Ubuntu, и выполняться Ваш код будет именно внутри Ubuntu.

В браузере Вы набираете site.app, и у Вас отображается сайт из Ubuntu. При этом у Вас также будет доступ к Ubuntu по SSH.

У начинающих установка и настройка Homestead займёт время, но как разработчик Вы просто обязаны это сделать.

Стоит отметить, что Homestead можно установить не только на Linux, но и на Windows.

Далее будем считать, что Homestead установлен, и сайт со свежей версией Laravel открывается у Вас в браузере.

Ваш код запускается в браузере, но действительно ли всё работает?

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

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

Laravel создан для качественного тестирования всех возможностей Вашего проекта.

Документацию по тестированию можно найти по этой ссылке.

В Laravel тесты находятся в папке tests и выполняются командой phpunit в консоле, либо сразу из IDE.

Тесты бывают нескольких типов:

  1. Функциональные – Feature-тесты
  2. Модульные – Unit-тесты

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

В этом нам поможет Laravel Dusk.

Unit-тесты – модульные тесты.

Каждая функция проекта должна иметь свои тесты, а когда Вы завершите проект, то все тесты должны успешно запускаться.

При изменении функционала Вы можете дописать тесты. Это спасёт Вас и Ваших коллег от ошибок и поможет проще диагностировать проблему.

Unit-тестирование позволяет избежать ошибок в логике приложения.

Стоит отметить, что существует методика разработки TDD (test-driven development) – разработка через тестирование. Сначала мы пишем тесты, а затем постепенно реализуем код. Когда все тесты выполнены, то мы можем сказать, что завершили написание кода.

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

Laravel предлагает нам установить Laravel Debugbar.

Это специальный пакет, который отображается на Вашем сайте в режиме отладки. С помощью него можно отследить все SQL-запросы к Вашей базе данных с целью их дальнейшей оптимизации.

Этап третий – сборка проекта

После создания веб-проекта и прохождения тестов нам необходимо подготовить наш проект к размещению на сервере.

Laravel предоставляет нам Laravel Mix.

Laravel Mix использует Webpack и умеет работать с CSS, JS, Less, Saas, Stylus, PostCSS.

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

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

В шаблоне нашего проекта пишем:


После сборки он превращается в:


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

Не правда ли, удобно? Точно также и с JS-файлами.

Стоит отметить, что Laravel замечательно работает с прогрессивным Javascript-фреймворком Vue и позволяет очень удобно создавать веб-приложения на базе этого JS-фреймворка. При этом каждый компонент можно удобно размещать в отдельном файле.

О том, как писать компоненты для Vue используя Laravel можно прочитать по этой ссылке.

Этап четвёртый – развёртывание (deploy) кода

Обычно после сборки проекта его файлы необходимо загрузить на сервер и обновить структуру таблиц в базе данных.

Берём папку с файлами и загружаем на FTP-сервер.
Заходим в phpMyAdmin и делаем изменения в БД.

Мы не станем использовать FTP и phpMyAdmin, иначе пока мы вносим изменения, все пользователи, которые зайдут на сайт веб-проекта, увидят множество ошибок об отсутствии каких-то файлов или полей в БД.

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

Git — это распределённая система управления версиями файлов.

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

Использовать Git можно через сервис.

Вы можете создать либо общедоступный код, либо приватный (для приватных репозиториев – он платный).

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

Кроме этого, сам Git можно настроить так, чтобы при внесении изменений происходили определённые действия:

  1. запуск тестов проекта через Travis CI;
  2. форматирование кода по стандарту;
  3. анализ качества кода через инструмент.

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

Ранее мы говорили о процессе развёртывания веб-приложения. Именно для этого нам и необходим Git. С Вашей локальной машины Вы загружаете код веб-приложения в Git, после чего произойдёт автоматический запуск развёртывания приложения на сервере.

Laravel Forge – сервер без хлопот. Для автоматического развёртывания из Git нам поможет сервис Laravel Forge.

Через Laravel Forge Вы можете создать виртуальный сервер в DigitalOcean, Linode или указать доступ к своему собственному серверу. При этом будет настроено абсолютно всё необходимое ПО для работы PHP-фреймворка Laravel.

Laravel Forge автоматически устанавливает обновления, связанные с безопасностью системы. Также Forge легко установит бесплатный SSL-сертификат от Let's Encrypt.

Вы можете дать сервису Laravel Forge доступ к Вашему Git-репозиторию и при каждом изменении в коде на сервере будет автоматически развёрнута его свежая версия.
Хотите 10 серверов? – Без проблем, Laravel Forge может установить балансировщик нагрузки, создать 10 виртуальных серверов, на каждый сервер копировать код из Git и запустить проект.

Думаете всё?

Нет, совместно с Envoyer Вы можете запускать новый код в работу без остановки сервиса совсем.

Хотя лично я не использую Envoyer, а просто написал небольшой скрипт в панели Laravel Forge, который запускается при каждом развёртывании кода и обеспечивает замену на лету, при этом сохраняя ещё несколько копий старого кода на самом сервере.

Итоги

Мы создали комфортное рабочее окружение, установили IDE, Composer, PHP-фреймворк Laravel, написали код проекта, запустили тесты, изучили систему контроля версий Git, отправили туда код, подключили сервис Laravel Forge, при желании подключили также Laravel Envoyer, сделали развёртывание проекта на рабочий сервер из нашего Git-репозитория.

Основные возможности PHP-фреймворка Laravel

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

После выхода PHP7 по сравнению с PHP5, скрипты стали быстрее и начали использовать гораздо меньше оперативной памяти, а в связке с Zend OPCache показывают замечательные результаты. В частности сервис Laravel Forge настраивает Zend OPCache для достижения максимальной производительности.

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

Сам Laravel постоянно совершенствуется и следует современным тенденциям. Изучая его, Вы не отстанете от мира веб-разработки, главное – не зацикливаться на какой-то конкретной версии фреймворка, а развиваться вместе с ним. Для этого необходимо также изучать нововведения Laravel.

Ежегодно проводятся различные конференции, которые можно посмотреть также и онлайн.

Постараюсь описать основные возможности Laravel, чтобы можно было оценить масштаб:

    MVC (англ. Model View Controller – модель-представление-контроллер) PHP-фреймворк построен на базе известных и надёжных компонентов Symfony.

Как и другие фреймворки, он распространяется бесплатно и имеет открытый исходный код, который можно найти на GitHub .

Laravel используется при создании приложений с моделью MVC (Model View Controller — модель-представление-контроллер); многие считают его одним из лучших МVC фреймворков (в том числе и потому что у Laravel большое сообщество).

Динамика популярности Laravel

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

Laravel подойдет тем, кто хочет быстро и правильно создать надежный веб-проект.

Релиз Laravel 1 состоялся не так давно – в середине 2011 года. Актуальная сейчас версия – 5.6.0 , вышедшая совсем недавно, в феврале 2018 года.

Разработка

Приложение на Laravel можно разрабатывать на любой операционной системе. Можно использовать IDE (интегрированную среду разработки) на свой выбор, например PhpStorm (любители текстовых редакторов могут выбрать Atom или Sublime Text).

Здесь еще может пригодиться Laravel IDE Helper Generator – пакет, который генерирует файл-хелпер, в котором содержатся статические классы фасадов.

Вторым полезным инструментом станет Composer, который позволяет обновлять фреймворк и загружать в проект дополнительные пакеты. Его можно скачать по этой ссылке . Большинство PHP-пакетов имеют минимум зависимостей и поэтому могут быть легко добавлены в приложение.

При написании любого проекта его нужно тестировать – в Laravel представлены функциональные тексты (Feature-тесты), проверяющие функционал проекта (с точки зрения пользователя), и модульные тесты (Unit-тесты), которые проверяют саму логику проекта.

Еще один полезный инструмент - Laravel Debugbar, пакет, который позволяет контролировать и отлаживать код (интегрируется в PHP Debug Bar). Он отслеживает запросы, например, позволяет отследить SQL-запросы для их оптимизации.

Для сборки проекта понадобится Laravel Mix . Этот API используется для определения инструкций сборки Webpack для Laravel приложения.

Возможности Laravel

Фреймворк Laravel

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

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

Laravel позволяет использовать сервис-провайдер (service provider), благодаря которому можно централизованно подключать необходимые компоненты приложения.

В Laravel можно легко расширять любые компоненты.

Также отдельно можно отметить удобную маршрутизацию и валидацию входящих параметров.

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

Сайты на Laravel отличаются:

  • широким функционалом (можно сделать проект с практически любым необходимым функционалом);
  • удобной административной панелью (можно сделать панель конкретно под определенный проект и его задачи);
  • высоким уровнем безопасности баз данных (сайты надежно защищены от SQL-инъекций);
  • масштабируемостью (функционал проекта можно легко расширить).

На базе Laravel было разработано несколько CMS, о самых интересных будет рассказано ниже.

October CMS

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

Это полноценный, готовый продукт, имеющий свою документацию, плагины, темы, легкость в использовании и многое другое.

October CMS

October CMS имеет удобную и симпатичную административную панель, которую можно кастомизировать под себя. Также в October CMS есть встроенный файловый менеджер, который позволяет работать с файлами и изображениями прямо в браузере.

Asgard CMS

Довольно новый (2015 года) проект, однако уже набирающий популярность. Asgard CMS больше рассчитана на разработчиков, чем на простых пользователей, так как даже установку необходимо производить через командную строку. Создатели Asgard CMS видят преимущества этого движка в том, что он:

а) прост в установке (занимает не более 5 минут);

б) многоязычный (в том числе и бэкенд);

в) модульный (каждая часть CMS представляет собой отдельный модуль)

и г) user-friendly, то есть дружелюбна к пользователям.

Asgard CMS

А главные преимущества системы: адаптивный дизайн (сайт удобно смотреть на любом устройстве), работа на PHP 7.0 и готовность к запуску (для разработки сайта на Asgard CMS потребуется всего несколько дней, а не недель или месяцев).

Lavalite

Еще одна CMS, ориентированная в первую очередь на разработчиков. Она включает в себя все необходимые базовые пакеты вроде файлового менеджера, пакеты «Темы», «Пользователи», Saas и другие.

Lavalite

Главные черты Lavalite: адаптивный дизайн, возможность кастомизации, чистый код, с которым удобно работать, документация, бесплатные обновления.

PyroCMS

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

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

PyroCMS

Основные черты PyroCMS: многоязычность, возможность устанавливать модули и темы, а также плагины.

laravel-frejmvork

Всем привет!

Сегодняшней статьёй я открываю долгожданный (для меня, прежде всего) цикл статей, посвящённый созданию сайта с нуля на Laravel 5, в котором будут описываться все основные конструкции данного веб-фреймворка, а в конце вы получите полнофункциональный ресурс.

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

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

Вас, кстати, это тоже ждёт, т.к. лучший способ что-то изучить – это проделать это самостоятельно 🙂

Но, об этом немного погодя.

А в этой вводной статье я хотел бы вас подробнее познакомить с Laravel framework и его особенностями, а также с Laravel API, чтобы вы понимали, что конкретно у него «под капотом», и заинтересовать вас в его изучении.

Кому стоит попробовать Laravel фреймворк?

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

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

Для web-developer же данный материал, как и весь цикл последующих статей, будет просто необходим, т.к. умение работы с фреймворком must have, если вы заботитесь о своём профессиональном и карьерном росте.

Надеюсь, я вас слегка замотивировал? Тогда поехали 🙂

Laravel – это что?

Для тех, кто не в курсе, и не знает, что такое Laravel, для начала расскажу в двух словах в общем об этом движке сайтов.

Итак, Laravel – это бесплатный PHP фреймворк общего назначения с открытым кодом, который появился на свет сравнительно недавно – в 2011 году, но, благодаря стремительным темпам развития и огромной армии поклонников, сегодня он является одним из самых популярных PHP движков.

Сами создатели Laravel назвали его «framework for artisans», что в переводе означает «фреймворк для ремесленников», намекая на то, что данная платформа даёт разработчикам полную свободу творчества, не создавая перед ними никаких препятствий в процессе разработки.

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

laravel-uroki-sozdaniya-sajta-s-nulya

Итак, что же у Laravel “под капотом” и чем он завоевал такую безоговорочную популярность среди разработчиков?

18 ключевых особенностей Laravel фреймворка

Laravel – это PHP framework, а это значит, что он написан на языке программирования PHP и, создавать код на его базе можно также только на PHP.

Вообще-то, это нормальное поведение для PHP движков (Yii, Symfony, Zend), но, как известно, бывают и исключения в виде Phalcon, у которого компоненты написаны на C++, а пользовательский код пишется на PHP.

Поэтому-то я и решил обратить внимание на данный момент.

Итак, что же интересного даёт разработчику Laravel?

Информативная документация

Начать я решил с особенности Laravel, с которой неизбежно сталкиваются все разработчики при освоении новой технологии.

Это документация Laravel, которая, по моему мнению, является очень хорошей и структурированной.

Думаю, что это также добавляет популярности данному движку среди разработчиков. По крайней мере, в моём случае это правда 🙂

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

В Laravel документации таких проблем нет – каждой конструкции и процессу посвящена отдельная статья.

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

MVC структура кода

Структура кода Laravel framework соответствует популярному паттерну проектирования MVC, т.е. в нём можно выделить модели (models), представления (views) и контроллеры (controllers).

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

MVC позволяет делать код более читабельным, а процесс разработки комфортным, разграничивая работу frontend- и backend-разработчиков.

Artisan – это консоль Laravel, в арсенале команд которой есть работа с миграциями, контроллерами и моделями, авторизацией и прочими базовыми компонентами фреймворка.

Своего рода, контроль версий для структуры таблиц БД. Каждый файл миграции содержит либо структуру таблиц, либо изменения её структуры.

Т.е. процесс создания новых сущностей БД в Laravel фреймворке представляет собой создание миграции и запуск её с помощью специальных консольных команд artisan.

Пример создания таблицы пользователей сайта в соответсвующей миграции:

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

Blade – это собственный шаблонизатор с набором своих директив. Принцип его работы похож на большинство своих собратьев – Smarty, Twig и т.д. Так что если вы работали с каким-либо из них, то в курсе, что это такое.

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

Twitter Bootstrap и jQuery из коробки

Поcле установки Laravel фреймворка в распоряжении разработчика находятся файлы app.js и app.css, которые представляют собой скомпонованные и минимизированные jQuery и BootStrap самых последних версий на момент выхода релиза Laravel.

Так что подключать их вручную ещё раз нет смысла. Если вас, конечно, устроит подобное использование данных пакетов и вы не предпочтёте использовать какие-либо сборщики пакетов, к примеру, WebPack.

Для работы с ним в Laravel framework, кстати, есть специальный инструмент.

Laravel Mix

Данный пакет представляет собой надстройку над упомянутым WebPack, позволяющую разделять css и js код на отдельные модули, конфигурировать их использование, настраивать минификацию и использование css-препроцессоров (sass, less, stylus и т.д.).

В общем, фронтэнд-разработчики оценят 🙂

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

Вспомните времена, когда вы писали на чистом PHP и делали проверку на существование в БД значения, вводимого с формы, путём ручного запроса в базу для избегания его дублирования.

По правде говоря, поначалу, когда я только начинал работать с Laravel, я поступал точно так же, т.к. не знал о существовании и назначении валидаторов.

Eloquent ORM

ORM – это технология программирования, которая призвана облегчить программистам работу с БД путём предоставления методов API для типичных операций (выборка, добавление, обновление, удаление и т.д.).

Реализаций ORM существует великое множество, но создатели Laravel и тут заморочились, выдумав собственную.

Механизм очередей

В Laravel из коробки доступны инструменты организации очередей процессов (например, для массовой отправки email).

Данная функция незаменима для HighLoad-проектов, т.к. позволяет разгрузить сервер от постоянной работы.

Интерфейс для Cron задач

Laravel предоставляет набор методов для создания и управления задачами, выполняемыми с помощью планировщика задач Cron.

Пример задачи с выполнением каждый час в промежутке между 7 и 22 часами дня:

Удобный дебаггинг кода и тестирование

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

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

Возможность расширения базового функционала

Поскольку фреймворк – это просто набор инструментов для эффективного написания кода, то все банальные функции, которые в CMS, к примеру, добавляются в два счёта путём установки готовых модулей, в случае использования фреймворков приходится каждый раз писать руками. Чтобы избежать данной рутинной работы, разработчики Laravel ввели возможность расширения функционала базового приложения за счёт установки пакетов, которые являются аналогами модулей для CMS.

Кэширование из коробки

Ещё одна полезная фича, без которой невозможна разработка полноценного HighLoad-ресурса. Причём, кэширование в Laravel доступно с помощью различных технологий: Redis, MemCached и т.д. с помощью соответствующих драйверов и пакетов. По умолчанию доступен драйвер кэширования file, благодаря которому закэшированная информация будет храниться в файловой системе.

Удобный механизм роутинга

Манипуляции с URL, доступными на сайте, в Laravel невероятно просты и удобны. Всё, что нужно сделать, для добавления Laravel 5 routes – это отредактировать файл routes/web.php. Простейшее добавление нового роута выглядит следующим образом:

Данное правило будет выводить на экран содержимое файла resources/views/welcome.blade.php при переходе в корень сайта.

Также для роутов возможно указывать методы контроллеров и пользовательские функции, применяя к ним MiddleWare – ещё одну фишку Laravel, представляющую собой прослойку между роутом и действием при его выполнении.

Работа с сессиями различными способами

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

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

  • файловое хранилище на сервере – стандартные объекты сессий;
  • cookie;
  • Memcached;
  • Redis;
  • сохранение данных в БД;
  • временный PHP массив.

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

Laracon – это тематическая конференция, целью которой является объединение любителей Laravel со всего мира для обмена опытом.

Она проводится несколько раз в год, начиная с 2013 года, причём, в разных уголках Земного шара. А в этом, 2017 году, она впервые будет проводиться в формате online.

Примеры Laravel сайтов

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

В этом и заключается их принципиальное отличие от CMS, которые, в большинстве своём, узкоспециализированы.

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

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

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

Поэтому далее предлагаю вашему вниманию список Laravel проектов, не имеющих аналогов среди существующих сайтов:

Напоследок о Laravel PHP framework

Конечно же, приведённый мною список особенностей Laravel далеко не полный. Но, надеюсь, его хватило, чтобы пробудить у вас интерес к изучению данного фреймворка 🙂

Если же аргументов вам показалось недостаточно, то достаточно вспомнить о популярности Laravel framework, что, в свою очередь, ведёт к росту востребованности соответствующих специалистов.

И, как показало моё недавнее мини-исследование рынка услуг PHP разработчиков, эта тенденция уже наблюдается как в СНГ, так и во всём мире.

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

Наверное, потому, что «его логика совпадает с моей собственной», как сказал один из моих коллег-программистов на каком-то форуме.

Итак, мы рассмотрели наиболее интересные и значимые плюшки Laravel 5.

А более подробно с каждой из них я вас познакомлю в дальнейших публикациях цикла по созданию сайтов на Laravel 5 с нуля, который я торжественно открыл сегодняшней статьёй.

Надеюсь, что она получилась и не дала вам заскучать.

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

На этом всё! До скорой встречи 🙂

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

7 комментариев к статье "Laravel framework: 18 особенностей движка"

Автор, отличная статья, действительно заинтересовал. Спасибо!

Добрый день!
Прочитав вашу статью хотел бы узнать. С чего надо начать чтобы изучить Laravel?
Пробовал я по видеоурокам делать и честно скажу утомительное занятие. Самый простой сайт, который я мог бы сделать за пару дней с Laravelom провозился 2 недели и до конца так и не доделал.
Понимаю что надо какая то подготовка для понимания процесса, что вы посоветуете?
Спасибо.

Здравствуйте! Я, к сожалению, ничего годного в Рунете посоветовать не могу. Сам, когда начинал изучать, испытывал подобные трудности. У одних материал как-то сумбурно излагался, у других курсы не были доделаны.

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

Добрый день! 🙂 С чего вы взяли, что в Laravel нет валидаторов? Если они указаны в качестве одной из особенностей Laravel фреймворка в статье, то это само по себе предполагает их наличие в коде движка, Вам так не кажется?

У вас написано на laravel можно делать все что угодно от лендингов до социальных сетей.Пожалуйста дайте ссылку хоть на одну соц сеть сделанную на laravel
done;

Но если вы ожидали увидеть в этом списке Facebook и Pinterest, то да, они не на Laravel написаны.

От автора: PHP — наиболее популярный в мире серверный скриптовый язык. Он прошел большой путь развития от небольших, встраиваемых в код статических HTML страниц, сниппетов, до современного языка, на котором разрабатывается большинство современных динамических сайтов. Сложность и функциональность современных сайтов только возрастает, и ни у кого нет желания писать весь необходимый код с нуля. Программистам необходимо разрабатывать сложные сайты и веб-приложения, а это обычно занимает очень много времени. Чтобы облегчить процесс разработки программистам, начали создаваться фреймворки.


Laravel — это фреймворк для web-приложений с выразительным и элегантным синтаксисом. Он позволит упростить решение основных наболевших задач, таких как аутентификация, маршрутизация, сессии и кэширование. Laravel — это попытка объединить всё самое лучшее, что есть в других PHP фреймворках. Основные преимущества Laravel:

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

документация Laravel близка к совершенству;


Фреймворк Laravel. Быстрый старт

Получите курс и узнайте, как cоздать веб-приложение на фреймворке Laravel!

у Laravel есть свой движок для шаблонов Blade, «красивый» синтаксис языка, который способствует решению всех необходимых задач, таких как аутентификация, сессии, кэширование и маршрутизация RESTful.

Несмотря на свою молодость (первый релиз вышел в 2011 году), это уже совершенно зрелый продукт, и, согласно опросу, проведенному порталом SitePoint, он занимает первое место по популярности среди разработчиков на PHP.

Популярность фреймворка Laravel

Для того чтобы оценить популярность фреймворка, предлагаю обратиться к нескольким источникам статистики использования. Статистика популярности от Sitepoin за 2015 год.


Популярность по статистике запросов, которую предоставляет Google Trends.


Как видно из графиков и статистики от SitePoint, а также статистике Google Trends, фреймворк Laravel занимает уверенное первое место и постоянно набирает популярность, не сбавляя обороты. Что, в общем, очень хорошо, учитывая, что это общемировая статистика.

Если мы возьмем статистику запросов в Google Trends по России, то картинка несколько изменится:


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

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

Возможности Laravel

Пакеты — позволяют создавать и подключать модули в формате Composer к приложению на Laravel. Многие дополнительные возможности уже доступны в виде таких модулей.

Eloquent ORM — реализация шаблона проектирования ActiveRecord на PHP. Позволяет строго определить отношения между объектами базы данных. Стандартный для Laravel построитель запросов Fluent поддерживается ядром Eloquent.

Логика приложения — часть разрабатываемого приложения, объявленная либо при помощи контроллеров, либо маршрутов.
Обратная маршрутизация связывает между собой генерируемые приложением ссылки и маршруты, позволяя изменять последние с автоматическим обновлением связанных ссылок. При создании ссылок с помощью именованных маршрутов Laravel автоматически генерирует конечные URL.

Автозагрузка классов — механизм автоматической загрузки классов PHP без необходимости подключать файлы их определений в include. Загрузка по требованию предотвращает загрузку ненужных компонентов; загружаются только те из них, которые действительно используются.

Составители представлений — блоки кода, которые выполняются при генерации представления (шаблона).
Инверсия управления — позволяет получать экземпляры объектов по принципу обратного управления. Также может использоваться для создания и получения объектов-одиночек.

Миграции — система управления версиями для баз данных. Позволяет связывать изменения в коде приложения с изменениями, которые требуется внести в структуру БД, что упрощает развёртывание и обновление приложения.

Модульное тестирование (юнит-тесты) — играет очень большую роль в Laravel, который сам по себе содержит большое число тестов для предотвращения ошибок.

Страничный вывод — упрощает генерацию страниц, заменяя различные способы решения этой задачи единым механизмом, встроенным в Laravel.


Особенности фреймворка

Laravel — это особенный фреймворк с сильным брендингом, поэтому почти всё особенное в Laravel имеет уникальное название.


Фреймворк Laravel. Быстрый старт

Получите курс и узнайте, как cоздать веб-приложение на фреймворке Laravel!

Dotenv

Где вы храните секретную информацию вашего приложения, такую как пароль от БД, логин для email и другие вещи? Laravel 5 использует хорошо известный файл .env, который также используют многие фреймворки для других языков программирования. Это файл, в котором вы определяете пары ключ-значение для любой вашей секретной информации.

Laravel — первый фреймворк, поддерживающий PSR-4. Прямо из коробки Composer автоматически загрузит все классы из каталога app, используя стандарт автозагрузки PSR-.

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

IoC-контейнер — расширения ядра

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

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

Запросы форм

В Laravel есть восхитительная возможность, которая называется запросами форм. Это проверка запросов для ваших контроллеров. Это не просто проверка данных, а полная обработка запроса.

Eloquent

Eloquent ORM, включённая в Laravel, — наиболее мощная реализация шаблона ActiveRecord в PHP. Кроме обычных CRUD-операций, в ней есть мягкое удаление, области запросов, отношения, методы доступа и мутаторы, мутаторы дат, наблюдатели модели и многое другое.

Цикл версий

У Laravel очень предсказуемый цикл версий. Через каждые шесть месяцев можно ждать очередной версии. Laravel выходит через один месяц после выхода Symfony.

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

SSH задачи

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

Flysystem

Flysystem — восхитительный пакет из Лиги выдающихся пакетов для управления файловыми системами. Это файловая система, использующая коннекторы, с помощью которой вы легко можете взаимодействовать с local, awss3, dropbox, rackspace и другими файловыми системами в облаке.

Если вы пользовались новейшими технологиями для фронтенда последние несколько лет, то, вероятно, вы использовали препроцессор для ваших файлов CSS и JavaScript. Но если нет, то Laravel об этом позаботится.

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

Вместо использования для этого каких-либо PHP-пакетов, Laravel предлагает пакет Elixir для исполнителя задач NodeJS Gulp. Поэтому вы можете использовать все те преимущества NodeJS и Gulp, которые вам нравятся.

Вы запускаете Gulp-задачу watch, и Elixir позаботится обо всём для вас. Если вы используете LESS и CoffeeScript:


compiled.php

Любой полнофункциональный фреймворк загружается с тысячей файлов и объявлений. По большей части, все они обрабатываются автозагрузкой Composer, но для наиболее используемых файлов Artisan может создать файл compiled.php, который загружается при каждом запросе и объединяет все классы, используемые в вашем приложении.

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

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

Когда вы захотите повысить производительность вашего PHP-кода, вы можете сменить PHP-окружение на высокооптимизированную среду исполнения для PHP от Facebook — HHVM.

Laravel — один из первых фреймворков, поддерживающих HHVM, и он проходит 100% юнит-тестов на HHVM. Поэтому вы можете быть уверены, что легко можете переключить ваше приложение с PHP на HHVM и получить ещё больше производительности.

Cashier

Laravel Cashier обеспечивает выразительный, гибкий интерфейс для услуг биллинговых подписок Stripe. Он обрабатывает почти все шаблонные коды биллинговых подписок, которые вы боитесь написать.

Сообщество и документация

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

Это способствует расширению сообщества, и вам стоит знать, что Laravel был внесён в список самых популярных PHP-фреймворков в 2013 году, опередив Phalcon, Symfony2 и CodeIgniter. А в августе 2014 года Laravel стал самым популярным и просматриваемым PHP-проектом на GitHub.


Вывод

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

P.S. Вы используете фреймворки при разработке своих проектов? Если используете, то напишите в комментариях к статье, какие фреймворки вы используете. Если нет, то хотели бы вы освоить и использовать фреймворки?


Фреймворк Laravel. Быстрый старт

Получите курс и узнайте, как cоздать веб-приложение на фреймворке Laravel!

Читайте также: