Главная Ларавел Laravel framework: особенности движка

Ларавел


Laravel framework: особенности движка

Всем привет!

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

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

СОДЕРЖАНИЕ

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

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

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

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

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

Laravel – это что?

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

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

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

Уже в конце 2013 года Laravel имел версию 4.1 и был назван «самым многообещающим проектом на 2014 год» по версии sitepoint.com.

Кстати, на сегодняшний день текущей версией фреймворка является 5.6.

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

 

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

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

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

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

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

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

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

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

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

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

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

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

Laravel документация на русском существует даже в нескольких вариантах на сайтах laravel.ru и laravel.su.

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

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

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

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

Artisan

Artisan — название интерфейса командной строки, входящего в состав Laravel. Он предоставляет полезные команды для использования во время разработки вашего приложения. Работает на основе мощного компонента — Symfony Console.

Миграции

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

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

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

Blade

Blade  — простой, но мощный шаблонизатор, поставляемый с Laravel. В отличие от других популярных шаблонизаторов для PHP Blade не ограничивает вас в использовании чистого PHP-кода в ваших шаблонах. На самом деле все шаблоны Blade скомпилированы в чистый PHP-код и кешированы, пока в них нет изменений, а значит, Blade практически не нагружает ваше приложение. Файлы шаблонов Blade используют расширение .blade.php и обычно хранятся в директории resources/views..

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

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

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

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

Laravel Mix

Laravel Mix -это чистый и гибкий API для определения инструкций сборки Webpack для вашего Laravel-приложения с использованием нескольких основных препроцессоров CSS и JavaScript. С помощью сцепки методов вы можете гибко определить свой конвейер сборки.

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

Регистрация и аутентификация

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

Валидаторы

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

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

Eloquent ORM

Система объектно-реляционного отображения (ORM) Eloquent — красивая и простая реализация шаблона ActiveRecord в Laravel для работы с базами данных. Каждая таблица имеет соответствующий класс-модель, который используется для работы с этой таблицей. Модели позволяют запрашивать данные из таблиц, а также вставлять в них новые записи.

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

Компонент Laravel Queue предоставляет единое API для различных сервисов очередей. Очереди позволяют вам отложить выполнение времязатратной задачи, такой как отправка e-mail, на более позднее время, таким образом на порядок ускоряя обработку запросов в вашем приложении.

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

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

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

Планировщик команд Laravel позволяет вам гибко и выразительно определить планирование своих команд в самом Laravel. И для этого на вашем сервере необходима только одна Cron-запись. Ваш планировщик задач определён в методе schedule файла app/Console/Kernel.php. Чтобы помочь вам начать, там уже есть простой пример с методом.

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

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

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

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

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

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

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

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

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

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

Laracon

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

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

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

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

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

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

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

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

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

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

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

Так что изучение Laravel фреймворка — это перспективное занятие со всех точек зрения: как с позиций профессионального роста, так и карьерного.

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

 

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


Комментарии

Написать комментарий