click fraud detection
click fraud detection
0 800 755 007
(Бесплатно по Украине)
Blog Case

17 преимуществ использования Laravel в IT-индустрии

BLOG
CASE
345
1
5/ 5stars
5/5

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

Этому свидетельствует анализ роста заинтересованности PHP-разработчиков в Laravel в сравнении с такими фреймворками как Symfony, Codeigniter, yii, zend и т.д.

Сравнение фреймворков

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

Перечислим основных игроков на этой арене:

  • Laravel;
  • Symfony;
  • CodeIgniter;
  • CakePHP;
  • Zend;
  • Yii.

Но среди всего этого разнообразия, почему-то Laravel признан лучшим.

Что такое Laravel?

Википедия нам говорит, что это open source (т.е. абсолютно халявный) фреймворк, созданный неким Тейлором Отвелом, следующий архитектуре MVC (кто бы мог подумать!) и основанный на Symfony.

Т.е. благодаря тому, что француз Фабьен (отец symfony) во второй версии произвел кардинальную лоботомию своему чаду. Он «перепил» его таким образом, что составные части этого «лего» стали независимыми друг от друга настолько, что можно спокойно его разбирать на куски и собирать из них что угодно. Вот с таких деталей и был создан Laravel, основная масса которых была позаимствована из symfony.

Итак, какие преимущества нам дает этот инструмент?

1. Высокая безопасность

Основными проблемами в безопасности являются 2 уязвимости: SQL-иньекции и кросссайтовый скриптинг.

Первая угроза связана с передачей строки деструктивного SQL через параметры HTTP запроса. Если система не проверяет все параметры, приходящие от пользователя, то этот запрос может быть выполнен. Laravel не допускает таких атак т.к. использует ORM которая, по умолчанию, исключает возможность “сырых” SQL-запросов, а все параметры при построении SQL запроса нормализируются. Из них удаляется все, что может навредить данным.

Вторая угроза связана с внедрением вредоносного кода JavaScript на произвольную страницу сайта. Если это происходит, то злоумышленник может легко получить все данные из куки пользователя и следовательно их подделать. Таким образом он получает все привилегии того бедняги, на чьей странице произошло выполнение этого javascript-а о чем он может и не подозревать вовсе. Подобная уязвимость решается путем экранирования запрещенных html-тегов (в частности тега script) и вывод экранированной строки как обычного текста без возможности его выполнения.

2. Повышенная производительность. Кеширование

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

В основном, это кеширующие инструменты. По умолчанию включено кеширование на уровне файловой системы, но можно изменить это поведение и использовать более производительные инструменты как не SQL-ные базы данных, таких как REDIS , Memcache или APC. Эти базы знамениты тем, что хранят данные в виде пар «ключ-значение» и делают это в оперативной памяти сервера. За счет этого время доступа к данным резко сокращается и дает возможность разработчикам кешировать как целые страницы, либо их части, так и массивы объектов – результатов запросов к базе данных, чем уменьшают их количество и ускоряют загрузку страниц. В этом искусстве главное для разработчика - правильно инвалидировать кэш и вовремя удалять устаревшие данные при их изменении.

3. Аутентификация

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

4. Открытый код и большое комьюнити

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

5. Шаблонизатор blade

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

Шаблонизатор blade довольно легковесный и не ухудшает производительности генерации веб-страниц.

6. Миграции баз данных

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

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

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

7. MVC-архитектура

Благодаря следованию архитектуре MVC, достигается четкое разделение между 3-мя абстрактными слоями приложения:

  • моделью;
  • контроллерами;
  • представлением.

Они становятся независимыми друг от друга и могут быть использованы один без другого.

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

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

8. Объектно-ориентированные библиотеки

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

9. Юнит-тесты

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

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

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

10. Перспективные приложения

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

11. Дружественный код

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

12. Мультиязычность

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

13. Интеграция с mail-сервисом

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

Laravel предоставляет понятный и простой API поверх популярной библиотеки SwiftMailer. Также в нем есть драйвера к SMTP?Mailgun, Mandrill, SparkPost, Amazon SES, PHP “mail” и “sendmail” функци, позволяющие приложению отправлять почту локально либо через облачные сервисы. В дополнение, Laravel предоставляет поддержку отсылки уведомлений через множество других каналов доставки, включая SMS и Slack.

14. Ошибки и исключения

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

15. Система отложенных задач

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

16. Запуск задач по расписанию

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

17. Скорость разработки

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

 

Выводы

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

5/5
Проголосовало людей: 3
СОДЕРЖАНИЕ
СТАТЬИ
Что такое Laravel?
1. Высокая безопасность
2. Повышенная производительность. Кеширование
3. Аутентификация
4. Открытый код и большое комьюнити
5. Шаблонизатор blade
6. Миграции баз данных
7. MVC-архитектура
8. Объектно-ориентированные библиотеки
9. Юнит-тесты
10. Перспективные приложения
11. Дружественный код
12. Мультиязычность
13. Интеграция с mail-сервисом
14. Ошибки и исключения
15. Система отложенных задач
16. Запуск задач по расписанию
17. Скорость разработки
Выводы
Пишем сигнальный сервер Tornado
Итак, это третья и последняя статья нашего цикла, где речь. В предыдущих двух мы рассматривали…
Дмитрий Жариков
Дмитрий Жариков
Кейс: Оптовые поставки товаров
Как мы сделали ребрендинг сайта известной компании TopChinaOpt, которая занимается оптовыми поставками и заказами продукции…
Полина Приходько
Полина Приходько
Как создать простое WebRTC-приложение
Мы продолжаем наш цикл статей о WebRTC, в прошлый раз мы говорили об использовании технологии…
Дмитрий Жариков
Дмитрий Жариков
Автор
345
1
Дмитрий Жариков
Дмитрий
Жариков
Возможно
CRM — программа, упрощающая бизнес-процессы. Она экономит время сотрудников, фиксирует заявки, напоминает о встречах, сохраняет…
Юрий Ковальчук
Юрий Ковальчук
Продвижение сайта с нуля — проблема, волнующая умы многих начинающих и опытных предпринимателей. Оптимизация нового…
Алексей Варламов
Алексей Варламов
Контекстная реклама – это текстовые объявления, которые показываются пользователям по поисковым запросам. Объявления показываются пользователю…
Александра Коноплицкая
Александра Коноплицкая
Оставить комментарий
к статье
ПОДПИСЫВАЙТЕСЬ НА РАССЫЛКУ АЙТЫЖБЛОГ
ХОТИТЕ ПОЛУЧАТЬ 
ИНТЕРЕСНЫЕ СТАТЬИ?
Уже подписались 232 человек
313
ПОПИСЧИКОВ
ЧИТАТЬ
4269
ПОПИСЧИКОВ
СЛЕДИТЬ
10139
ПОПИСЧИКОВ
СЛЕДИТЬ