» » Laravel — экосистема, а не просто PHP-фреймворк

 

Laravel — экосистема, а не просто PHP-фреймворк

Автор: admin от 3-08-2017, 14:25, посмотрело: 317

Laravel — экосистема, а не просто PHP-фреймворк


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

Статья написана на момент актуальности [b]Laravel [/b]версии [b]5.4[/b], [b]в августе 2017[/b] выйдет релиз [b]Laravel 5.5[/b], который предоставляет ещё больше возможностей.




Содержание:





https://getcomposer.org), именно через него мы и будем устанавливать (обновлять) Laravel, добавлять (обновлять) дополнительные пакеты в наш веб-проект.



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



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



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



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



по ссылке.



Для установки образа нам понадобится [b]Vagrant [/b]и [b]VirtualBox[/b].

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



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



В браузере Вы набираете [b]site.app[/b], и у Вас отображается сайт из Ubuntu.

При этом у Вас также будет доступ к Ubuntu по SSH.



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



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



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



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



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



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



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



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



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



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




  • Функциональные – Feature-тесты

  • Модульные – Unit-тесты



  • [b]Feature-тесты – функциональные тесты. [/b]



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



    Также Вы можете проводить тестирование с помощью Laravel Dusk, не просто отправляя HTTP-запросы, а используя реальный движок браузера Chromium.



    В этом нам поможет [b]Laravel Dusk[/b].



    [b]Unit-тесты – модульные тесты.[/b]



    Другой тип тестирования называется unit-тестированием.

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



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



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



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



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



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

    Кроме тестов есть ещё другие помощники для анализа производительности веб-приложения.



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



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



    Laravel Mix[/b].



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



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



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



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

    <link rel="stylesheet" href="{{ mix('/css/app.css') }}">


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

    <link href="/css/app.289df32d2d2c47df3b16.css" rel="stylesheet">


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



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



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



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



    Git можно через сервис.



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



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



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




  • запуск тестов проекта через Travis CI;

  • форматирование кода по стандарту;

  • анализ качества кода через инструмент.



  • Таким образом, весь код Вашего веб-проекта будет храниться в Git, он всегда будет [b]качественный[/b] и [b]проверенный[/b].



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



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



    [b]Laravel Forge – сервер без хлопот.[/b]

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



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



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



    Вы можете дать сервису Laravel Forge доступ к Вашему Git-репозиторию и при каждом изменении в коде на сервере будет автоматически развёрнута его свежая версия.

    Хотите 10 серверов? – Без проблем, Laravel Forge может установить [b]балансировщик [/b] нагрузки, создать 10 виртуальных серверов, на каждый сервер копировать код из Git и запустить проект.



    [b]Думаете всё? [/b]



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



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



    Ссылка на скрипт.



    пакет [b]Laravel-lang[/b] уже содержит множество переводов.




  • Интерфейс командной строки [b]artisan[/b], который позволяет генерировать модели, контроллеры, уведомления, запускать задания из очереди заданий и многое другое.




  • [b]Laravel Tinker[/b] – дополнительный пакет, который позволяет работать с кодом проекта из командной строки.




  • Огромные возможности для тестирования веб-проекта, включая заполнение базы данных тестовыми данными.




  • У фреймворка есть даже собственный сайт с библиотекой пакетов.




  • Нужен полнотекстовый поиск? Пожалуйста – [b]Laravel Scout[/b], можно использовать [b]Algolia[/b], [b]Sphinx[/b]и другие драйвера.



  • [b]Впечатляет, не правда ли? А я не описал даже и половины возможностей. [/b]



    С помощью Laravel можно одной командой сгенерировать систему регистрации и входа на сайт и с лёгкостью подключить сервисы [b]OAuth[/b] аутентификации благодаря [b]Laravel Socialite[/b] или даже создать свой с помощью [b]Laravel Passport[/b].



    Для тех, кто не знает OAuth, – это возможность войти на сайт через социальные сети.



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



    На основном сайте PHP-фреймворка Laravel недаром присутствует девиз:

    «Любите красивый код? Мы тоже. PHP-фреймворк для веб-мастеров.»


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



    Сайт PHP-фреймворка Laravel.



    Основные новости PHP-фреймворка и новости о различных пакетах.



    Очень рекомендую сайт https://laracasts.com, где [b]Jeffrey Way[/b] в своих видео-уроках наглядно и без лишних слов показывает возможности Laravel, также рассказывает много полезных вещей. За 2 минуты человек успевает рассказать больше и доступнее, чем многие за час.



    А также рекомендую книгу "[b]Refactoring to Collections[/b]", где [b]Adam Wathan[/b] подробно рассказывает о возможностях Laravel Collections. Гарантирую, Ваш код изменится в лучшую сторону.



    Рекомендую в каждый веб-проект на Laravel устанавливать:





    [b]P.S.:[/b] Данная статья получилась довольно объёмной и без технических подробностей, но её основная задача – дать начинающим разработчикам вводные знания, объяснить что же такое Laravel и какие возможности он даёт, а также показать, что Laravel – это не просто PHP-фреймворк, а целая экосистема, которая постоянно развивается. Это именно тот тренд, на который должны обратить внимание PHP-разработчики.



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



    Если Вам понравилась статья, то буду уже подробнее писать про каждый этап в данной статье с техническими деталями и кодом.

    Источник: Хабрахабр

    Категория: Программирование, Веб-разработка

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

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *