logo
Ещё

Laravel – обзор

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


Laravel – что это?

Framework Laravel (в русскоязычном варианте – Ларавель или Ларавел) представляет собой бесплатную программную платформу, исходный код которой является открытым и написан на языке PHP. Она используется для разработки серверных приложений любой сложности.

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

Фреймворк был впервые опубликован в середине 2009 года. Актуальной на сегодня является версия 9.19.0, которая датируется 29.06.2022 года. Регулярность выхода обновлений наглядно демонстрирует активное развитие продукта, которое характерно для всего времени его существования.


Кто и зачем использует?

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


Основой платформы выступает вариант архитектуры MVC, предусматривающий разделение компонентов программного обеспечения на три категории (каждая дает аббревиатуре по одной букве):

  1. Model (модель) – обозначает данные и способы их обработки, включая получение запросов с последующей проверкой их корректности.
  2. View (представление) – предусматривает демонстрацию данных пользователю с последующей корректировкой при изменении модели.
  3. Controller (контроллер) – предназначен для обмена данными между системой и пользователем, причем в обоих направлениях.


Возможность фреймворка

Первым и ключевым достоинством Laravel заслуженно считается обширный функционал. К числу наиболее важных возможностей фреймворка следует отнести такие:

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

  2. Eloquent. Это одна из реализаций ORM – специальной технологии для программирования взаимосвязи языка разработки с базой данных. Позволяет сделать создание ПО более простым и быстрым. Использует схему ActiveRecord, обеспечивающей особо высокий уровень защиты данных. Бонусом выступает автономность Eloquent, который загружается независимо от других компонентов Laravel.

  3. Fluent. Удобный, мощный и быстрый конструктор, позволяющим строить запросы к базе данных. Совместим с Eloquent. Предоставляет возможность легкой модификации размещенных в базе данных записей.
  4. Blade. Движок с большим количеством готовых шаблонов будущих веб-страниц с версткой в формате HTML. Они используются для создания готовых страниц посредством заполнения нужным разработчику контентом. Поэтому движок часто называют шаблонизатором.

  5. Валидация. Предусматривает проверку всех входящих данных. Позволяет обнаружить и устранить случайную ошибку. Ввод неверных данных не означает «падения» сайта, так как приводит к возврату на предыдущую страницу.
  6. Контроль версий БД. Удобная опция, отслеживающая производимые изменения – модификации. Предоставляет возможность вернуть к прежнему варианту или подтвердить актуальность нового.
  7. Юнит- или модульное тестирование. Относится к базовому уровню тестов и включает проверку работоспособности отдельных частей (модулей) программного кода.
  8. Аутентификация. Предназначена для реализации функции авторизации на сайте посредством введения персонального логина и пароля. Возможен и альтернативный вариант, предусматривающий использование для авторизации данных аккаунта пользователя в социальных сетях.

Преимущества и недостатки

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

  1. Очень развитое и многочисленное комьюнити, делающее сообщество пользователей Laravel и созданных ими интернет-ресурсов настоящей и полноценной экосистемой. Вершиной подобной деятельности стало проведение с 2013 года ежегодных мировых конференций под названием Laracon.
  2. Отменная производительность. Фреймворк ориентирован на поддержку формата баз данных NoSQL, обеспечивающих высокую скорость обработки и обмена информацией.
  3. Безопасность. Достигается за счет нескольких встроенных опций защиты, простой и эффективной.
  4. Открытый код. Предоставляет возможность вносить изменения в собственную версию ПО.
  5. Понятный и лаконичный синтаксис. Обеспечивает удобство чтения программного кода, в котором не используются длинные или сложные конструкции.
  6. Мультиязычность. Laravel поддерживает разные языки и предусматривает удобную настройку многоязычности.
  7. Широкий спектр разнообразных библиотек и пакетов. В распоряжении программиста находится множество вспомогательных инструментов, делающих его работу проще, быстрее и удобнее.
Не менее существенным достоинством фреймворка становится отсутствие четко выраженных и значимых недостатком.

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

Как создать сайт на Laravel

Проще всего работать с Laravel с Ubuntu, можете поставить Ubuntu 20 на виртуальную машину для тестов. Для начала вам нужно установить все зависимости и сам Laravel – для этого нужно исполнить команду в терминале:

sudo apt install php7.4 php7.4-bcmath php7.4-common php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-xml php7.4-zip openssl


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


Теперь нужно скачать и установить Composer, который будет собирать наш сайт. Вам нужно последовательно ввести 7 команд:

curl -sS https://getcomposer.org/installer | php

sudo mv composer.phar /usr/local/bin/composer

sudo chmod +x /usr/local/bin/composer

/usr/local/bin/composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php composer-setup.php

php -r "unlink('composer-setup.php');"

В результате у вас в директории должен остаться 1 файл – composer.phar. Проверить это можно командой ls.


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

php composer.phar create-project laravel/laravel example-app

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


Теперь перейдите в созданную директорию вашего первого проекта командой:

cd example-app

Включаем тестовый сервер, который встроен во фреймворк – для этого введите команду:

php artisan serve


А теперь откройте браузер (Firefox по умолчанию) и перейдите на адрес localhost:8000. Вы увидите стандартную заглушку Laravel:


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

Сайт на Laravel начинается с файла web.php – в этом файле прописываются все пути и имеющиеся страницы. Файл уже создан, он находится по следующему пути: [директория проекта]/routes/web.php


В файле вам нужно написать следующее:

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\HomeController;

use App\Http\Controllers\AboutController;

Route::redirect('/', '/home');

Route::get('/home', [HomeController::class, 'index']);

Route::get('/about', [AboutController::class, 'index']);

Первая строка указывает на то, что это – код php, вторая – на то, что нужно использовать роутинг из этого файла, последующие 2 строки указывают на контроллеры страниц, которые мы будем создавать, последние 3 строки указывают фреймворку на то, что делать при обращениях к страницам сайтов – /home и /about будут выдаваться как страницы сайта, любые обращения к корню сайта (/) будут перенаправляться на главную (/home).

Следующий шаг – это создание этих самых страниц, которые мы только что прописали. В папке app/Http/Controllers нужно вручную создать 2 контроллера, HomeController.php и AboutController.php. В Ubuntu – не самый удобный проводник, поэтому файлы проще создать через терминал. Откройте папку контроллеров в проводнике, нажмите на пустой области правой кнопкой мыши и выберите «Open in terminal».


Откроется новый терминал, в котором нужно прописать 2 команды:

touch AboutController.php

touch HomeController.php


Файлы созданы, можете закрыть этот терминал командой exit.

В HomeController нужно прописать:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class HomeController extends Controller

{

public function index()

{

return view('home', ['title' => 'Home Page']);

}

}

В AboutController нужно прописать:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class AboutController extends Controller

{

public function index()

{

return view('about', ['title' => 'About Page']);

}

}


Этот код расширяет общий класс контроллеров и добавляет на каждую страницу по тайтлу.

Последний шаг – нам нужно создать меню, которое позволит перемещаться по страницам сайта. Для этого нам понадобится шаблонизатор Blade, встроенный в Laravel. Для начала в resources/views нужно создать директорию layouts.


Теперь в этой папке нужно создать файл master.blade.php, в котором лежать описание нашего контейнера с меню:

<html>

<head>

@if ($title)

<title>{{ $title }}</title>

@else

<title>Example Laravel App</title>

@endif

</head>

<body>

<div><a href="/home">Home</a> | <a href="/about">About</a>

<hr/>

<div class="container">

@yield('content')

</div>

</body>

</html>


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

home.blade.php:

@extends('layouts.master')

@section('content')

<h1>{{ $title }}</h1>

<p>This is the home page for an example Laravel web application.</p>

@endsection

about.blade.php:

@extends('layouts.master')

@section('content')

<h1>{{ $title }}</h1>

<p>This is the about page for an example Laravel web application.</p>

@endsection


Теперь откройте браузер и зайдите на тестовую страницу. Поздравляем – у вас есть простейший сайт на Laravel с двумя страницами.


Что почитать и посмотреть по теме?

  1. Документация по фреймворку Laravel с официального сайта компании-разработчика.
  2. Сайт одного из самых активных сообществ пользователей Laravel.
  3. Сайт вакансий среди разработчиков на Laravel.
  4. Группа сообщества русскоязычных пользователей Laravel во ВКонтакте.
  5. Adam Wathan «Refactoring to Collections».
  6. Kelt Dockins «Design Patterns in PHP and Laravel».
  7. Канал на YouTube «Laravel Creative».
  8. Видео ролик на YouTube «Изучение Laravel. Что такое фреймворк Laravel?»
  9. Канал на YouTube «Просто о Laravel. CutCode».

FAQ

Что представляет собой Laravel?

Это бесплатный фреймворк с обширным функционалом и открытым программным кодом, который написан на PHP.

Для чего он используется?

Основная сфера практического применения – backend-разработка серверных приложений для самых разнообразных по тематике, сложности и объему сайтов.

Почему фреймворк является таким популярным?

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

Когда Ларавель появился на рынке?

Первая версия была опубликована в июне 2011 года. Сегодня используется версия 9.19.0, выпущенная 29.06.2022 года.

Чем Laravel выгодно выделяется среди других программных платформ?

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

Подведем итоги

  1. Laravel – бесплатный фреймворк с открытые программным кодом, который написан на PHP.
  2. Он является одной из самых популярных платформ для backend-разработки и активно применяется для разработки ПО – как для личных целей, так и для бизнеса.
  3. Ларавел выпущен в 2011 году.
  4. Причины популярности и широкого использования фреймворка состоят в наличии множества достоинств (производительность, безопасность, обширное сообщество, детальная документация и т.д.) при практически полном отсутствии серьезных недостатков.
Часто ищут