Общая информация
Laravel — это бесплатный фреймворк для создания веб-приложений на языке программирования PHP. Он предоставляет разработчикам удобные инструменты и структуру для эффективной веб-разработки.
Laravel используется для создания различных типов веб-приложений, включая блоги, электронную коммерцию, социальные сети, управление контентом и т.д. Он предоставляет множество готовых компонентов и широкий функционал: маршрутизацию, авторизацию, работу с базой данных, шаблонизацию и пр. С помощью Laravel любой новичок веб-разработки может получить массу нового, полезного опыта.
Кратко о развитии веб-разработки
В начале 90-х инженером и программистом мог быть один человек, в ходе длительного развития науки и технологий, мы имеем огромное количество направлений деятельности, одновременное изучение которых невозможно физически.
Сегодня существует большое количество разработчиков с разным уровнем знаний — от профессионалов с богатым опытом и внушительным резюме до новичков, которые только начали свой путь. PHP считается среди программистов одним из самых простых языков, для работы с которым достаточно минимума знаний. По этой причине в сфере разработки зародилось мнение, что PHP-разработчики — это «ненастоящие» разработчики, которые работают с «ненастоящим» языком.
Возникает вопрос — можно ли создать на PHP серьёзный продукт и доказать остальным, что этот язык заслуживает доверия? Если вы именно тот специалист, который скептически относится к PHP-разработке, советуем дочитать материал до конца.
Чтобы разработать программный продукт, одного знания языка недостаточно. Чтобы создать и поддерживать этот продукт, необходимо постоянно развивать навыки и пополнять багаж знаний.
Мы затронем вопрос пошаговой разработки веб-проекта и коснёмся деталей, которые нужно знать любому веб-разработчику. А также продемонстрируем, что Laravel — это хороший выбор для тех, кто хочет быстро создать качественный веб-проект, соответствующий современным технологическим требованиям.
Старт создания веб-проекта
Перед созданием любого веб-проекта важно продумать его структуру и особенности, процесс разработки, уделить особое внимание рабочему окружению.
Laravel представляет собой полноценную экосистему для веб-разработки, позволяющую создать логичную архитектуру для любого проекта. Если вы скачали его в zip архиве, то это говорит о том, что ваше рабочее окружение уже настроено неверно.
Шаг 1. Написание кода
Работать можно на любой ОС. Нам потребуется хорошая IDE (интегрированная среда разработки) — рекомендуем остановиться на PhpStorm. Можно также работать в текстовом редакторе по типу «Блокнот», но качественная интегрированная среда значительно упростит задачу.
После установки IDE или текстового редактора советуем уделить немного времени изучению его функционала. Это позволить автоматизировать большое количество рутинных действий и поможет ощутимо сэкономить время.
Несмотря на популярное мнение, что «профи» пишут код через «Блокнот», освоить все возможности IDE никогда не будет лишним.
Кроме IDE нам также потребуется Composer — с его помощью будет осуществляться установка и обновление Laravel, а также мы сможем добавлять различные нужные нам пакеты в веб-проект. Composer — крайне полезный инструмент, его работу мы также рекомендуем тщательно изучить.
Далее необходимо установить Laravel в соответствии с этой инструкцией.
Мы не будем углубляться в процесс написания кода, представим, что у вас уже есть IDE и Laravel. После установки последнего в коде сразу обозначено отображение базовой страницы. Поэтому мы переходим ко второму шагу.
Шаг 2. Тестирование кода
Чтобы протестировать веб-проект, вам не нужно размещать файлы на FTP-сервере или устанавливать локальный Apache. Это устаревший способ, который не спасает от ошибок в коде. Эти задачи можно решить с помощью других, более функциональных инструментов.
Laravel рекомендует установить Homestead образа операционной системы Ubuntu, в которой уже есть всё, что потребуется. Процесс установки и настройки подробно описан тут.
Для установки образа необходимо использовать Vagrant и VirtualBox. При этом вы уже будете знать, какие модули нужно установить и как ваш код будет работать на Ubuntu. В вашей системе будут отображаться папки с кодом, доступ к которым открыт внутри образа Ubuntu, и выполнение кода будет происходить там же.
Если набрать в браузере site.app, у вас отобразится сайт из Ubuntu. Доступ также будет открыт по SSH.
Несмотря на то, что установка и настройка Homestead может занять много времени (особенно у новичков), этот шаг необходим.
Далее мы считаем, что у вас установлен Homestead, а сайт с последней версией Laravel открывается в браузере.
Как после запуска убедиться, что код рабочий?
Невозможно написать код без тестов — это этап, позволяющий нам убедиться, что всё работает именно так, как надо. Поэтому рекомендуем выделить на это время. Каждый профессионал обязательно составляет тесты для своего кода.
У Laravel в базе достаточно инструментов для качественного и всестороннего тестирования веб-проекта. С его помощью вы можете оценить аспекты работы практически всего: от заполнения HTML-форм до отправки писем.
Документация по тестированию доступа по этой ссылке.
Все тесты Laravel лежат в папке test, их можно выполнить консольной командой phpunit либо через IDE.
Есть два типа тестов:
-
функциональные — Feature-тесты;
-
модульные — Unit-тесты.
Кратко расскажем о каждом типе.
Feature-тесты — функциональные тесты
Это тесты, которые проверяют работу приложения в целом, включая взаимодействие различных компонентов (например, контроллеров, моделей, представлений) и их корректную работу вместе.
Feature-тесты позволяют проверить, что все части приложения взаимодействуют правильно и выполняют свои функции согласно заданным требованиям. При этом разработчику не нужно, например, заполнять формы вручную, чтобы убедиться, что они работают.
Тестирование также можно проводить с помощью Laravel Dusk, используя при этом не HTTP-запросы, а движок браузера Chromium.
Unit-тесты — модульные тесты
Это тесты, которые проверяют работу отдельных частей кода (например, методов классов) независимо от других компонентов. Unit-тесты позволяют убедиться, что каждая часть кода работает правильно и выполняет свою роль в изоляции.
При внесении изменений в функционал необходимо также дорабатывать тесты. Это поможет не только избежать ошибок, тем самым быстрее определяя проблему в работе.
Если вы еще не пробовали составлять тесты для проектов, значит, пора осваивать это занятие, чтобы повысить свой уровень.
Кроме тестов существуют и другие способы анализа производительности. Например, Laravel предлагает для этого Laravel Debugar. Это специальный пакет, доступный в режиме отладки, с помощью которого можно отслеживать все SQL-запросы к базе данных с целью их оптимизации.
Шаг 3. Сборка проекта
По завершении проверки проекта мы готовим его к размещению на сервере. Для этого необходимо использовать инструмент Laravel Mix, предоставляемый Laravel. Он работает с CSS, JS, Less, Sass, Stylus, PostCSS и использует сборщик модулей Webpack. Кроме того, Laravel Mix умеет создавать версии всех этих файлов, что значительно упрощает процесс подготовки проекта к развёртыванию.
Соответственно, каждая сборка проекта может быть выполнена с разными названиями JS и CSS-файлов в HTML-коде, что решает проблему кэширования при внесении изменений в их содержимое. При этом браузер посетителя скачает с сайта уже обновлённый файл. Это очень удобно.
Стоит также отметить, что Laravel идеально сочетается с Javascript-фреймворком Vue, что обеспечивает дополнительное удобство при создании веб-приложений на основе данного фреймворка. Каждый его компонент может быть размещён в отдельном файле.
Шаг 4. Развёртывание кода
После сборки проекта все его файлы можно выгрузить на сервер и обновить структуру таблиц в базе данных. Для этого берётся папка с файлами и загружается на FTP-сервер. Затем разработчик заходит в phpMyAdmin и вносит изменения в базу данных.
Но мы не советуем такой способ, поскольку в ходе внесения изменений все пользователи, посетившие сайт, увидят сплошные ошибки в базе данных.
Код веб-проекта можно обновить более простым методом. Для этого нам потребуется изучить Git — распределённую систему управления версиями. С её помощью можно следить за изменениями в файлах, делать бэкап, а также осуществлять групповую работу над одним и тем же кодом без путаницы.
Пользование Git доступно через сервис. На платной основе вы можете создать общедоступный или приватный код.
При грамотной настройке Git можно обеспечить автоматическое выполнение следующих действий при каждом изменении в проекте:
-
запуск тестов проекта через Travis CI;
-
автоматическое форматирование кода в соответствии со стандартами;
-
анализ качества кода с использованием специальных инструментов.
Весь код веб-проекта сохраняется в Git, и при этом он всегда соответствует нужным стандартам.
Git играет важную роль в развёртывании веб-приложений. Достаточно загрузить код в инструмент, и развёртывание приложения на сервере запустится автоматически. Автоматизировать этот процесс нам поможет Laravel Forge. Через него можно создать виртуальный сервер в DigitalOcean, Linode либо настроить доступ к собственному сервису. При этом там присутствует всё ПО, которое потребуется для работы PHP-фреймворка Laravel.
Среди других возможностей Laravel Forge:
-
автоматическая установка обновлений, обеспечивающих безопасность системы; установка бесплатного SSL-сертификата от Let's Encrypt;
-
создание большого количества серверов с помощью балансировщика нагрузки.
Результат
Мы организовали правильное рабочее окружение, установили IDE, Composer, Laravel, написали код проекта и тесты для него, запустили тестирование, изучили систему контроля версий Git, подключили инструмент Laravel Forge и разместили свой проект на рабочем сервере.
Подводя итоги, можно уверенно сказать, что Laravel помог нам прощупать почву в веб-разработке. Впереди ждёт ещё много информации для изучения, однако, уже проделана немалая работа.
Основные возможности PHP-фреймворка Laravel
Поговорим об особенностях PHP-фреймворка Laravel: рассмотрим, какие веб-приложения можно создать с его помощью, насколько он хорош в техническом плане и почему пользуется такой популярностью.
С момента запуска PHP7 скорость выполнения скриптов значительно увеличилась, а потребление оперативной памяти сократилось, особенно в сочетании с Zend OPCache. Пример — сервис Laravel Forge, который активно использует Zend OPCache для оптимизации производительности веб-приложений.
Когда речь идёт о производительности определённого PHP-фреймворка, тестирование обычно проводят без кэширования, работы с базой данных или файлами, ограничиваясь лишь множеством вызовов к стандартной PHP-странице. В этом отношении Laravel не проявляет выдающихся результатов. Но если говорить о масштабируемости, гибкости и универсальности встроенных механизмов, именно здесь этот PHP-фреймворк показывает все свои преимущества.
Laravel постоянно улучшается, не отставая от трендов. Поэтому, изучая его, вы не столкнётесь с отставанием от мира веб-разработки. Главное — не останавливаться на одной конкретной версии, а регулярно обновляться и уделять время изучению нововведений.
Среди основных возможностей Laravel:
-
MVC этого PHP-фреймворка организован на базе популярных и надёжных компонентов Symfony.
-
Все нужные модули можно легко подключить в виде пакетов-провайдеров.
-
Есть возможности интеграции с другими платформами и библиотеками.
-
Код независим от кода разработчика, любой его элемент легко можно расширить.
-
Коды веб-проекта, CSS, JS, HTML-код страниц размещены в отдельных директориях с помощью отличного шаблонизатора Blade, который легко отделяет вёрстку от PHP-кода.
-
Комфортная маршрутизация, валидация входящих параметров.
-
Миграция и сидеры: имеются механизмы для управления структурой базы данных, заполнения ее начальными данными.
-
Есть инструменты для работы с очередями задач, поэтому длительные операции можно отрабатывать в фоновом режиме.
-
Возможность создания интерактивных веб-приложений через Websocket
-
Мультиязычность: можно загружать любые языки;
-
Через командную строку artisan доступна генерация моделей, контроллеров, уведомлений, запуск задания из очереди и многое другое.
-
Наличие дополнительного пакета Laravel Tinker, позволяющего работать с кодом проекта из командной строки.
-
Множество способов тестирования веб-проекта, в том числе заполнение базы данных текстовыми данными.
-
Наличие официального сайта с обширной библиотекой пакетов.
-
Высокая безопасность: к закрытой информации невозможно получить доступ через SQL, CSRF, XSS и пр.
И это даже меньше, чем половина возможностей.
Поэтому, если новичок хорошо изучит этот PHP-фреймворк, то он однозначно сможет поднять уровень своих знаний в сфере веб-разработки, включая навыки командной работы и основные принципы разработки проектов с большим уровнем нагрузки.
Laravel — это богатая, постоянно развивающаяся экосистема, которая предоставляет много возможностей. И вам однозначно стоит выделить время на её изучение.