Существует множество веб-фреймворков, из которых можно выбирать, и даже больше вариантов, когда вы их комбинируете. Я хочу взглянуть на сравнение двух фреймворков, Node.js и Laravel, которые, на мой взгляд, являются наиболее продвинутыми веб-фреймворками. И я хочу отметить один момент: не сравнивайте Laravel и Node.js так, как будто один лучше другого, а сравнивайте их с тем, какой набор инструментов является лучшим для работы или проблемы, которую вы пытаетесь решить.

Заявление об ограничении ответственности

Во-первых, несколько заявлений об отказе от ответственности. Во-первых, когда я говорю о Node.js, я имею в виду всю экосистему Node.js. Я знаю, что называть Node.js фреймворком неправильно, но ни один фреймворк в Node.js не подходит большинству из PHP. Но в этом и состоит великолепие Node.js! Вам не нужен большой фреймворк, потому что все очень модульное; выбирайте и вытягивайте то, что вам нужно для вашего приложения. Таким образом, я думаю, что в этом смысле сравнение Node.js и Laravel работает. Во-вторых, я определяю веб-фреймворк как базовую базовую структуру, на которой вы создаете приложение. Таким образом, веб-фреймворк обычно состоит из системы маршрутизации и обработки запросов, помощников, уровня абстракции базы данных, некоторой формы создания шаблонов и представлений рендеринга и обработки сеанса. В-третьих, я могу привести аргументы между Node.js и Laravel, которые на самом деле являются аргументами JavaScript и PHP. Я говорю, ребенка нельзя выливать водой из ванны. Опять же, мы рассматриваем два разных инструмента и то, что они могут предложить. В-четвертых, этот пост не является исчерпывающим. Этот пост представляет собой набор идей, которые я пытаюсь изложить в связной форме, а значит, не в виде отточенного текста.

Сходства между Node.js и Laravel

Во-вторых, я хочу изучить, чем похожи Node.js и Laravel:

  • менеджер пакетов
  • Npm для Node.js
  • Композитор для Laravel
  • маршрутизация
  • Express.js для Node.js (или другие)
  • В Laravel есть своя маршрутизация
  • RESTful-маршрутизация
  • Sails.js для Node.js (или многие другие)
  • Встроенный в Laravel
  • создание шаблонов
  • вы можете выбирать из большого количества движков шаблонов для Node.js, многие из которых также имеют реализации на стороне клиента.
  • Laravel использует шаблоны Blade, но также есть поддержка Twig.
  • неблокирующий / на основе событий
  • это заложено в Node.js
  • Reactphp для Laravel
  • веб-сокеты
  • Socket.io для Node.js
  • Ratchet для Laravel
  • ORM
  • драйверы базы данных: MongoDB, MySQL и т. д.
  • они оба очень сопоставимы; просто найдите драйвер для базы данных по вашему выбору
  • пространство имен
  • внедрение зависимости
  • ввод данных
  • они оба используют динамические слаботипизированные языки (некоторые не согласны), что означает, что переменные могут изменять тип во время выполнения, и язык будет определять тип переменных, т.е. добавление строки 2 и целого числа 2 приведет к целому числу 4 .
  • интерфейсы
  • помощники
  • практически все, что есть в npm, можно установить в качестве помощника в Node.js (например, см. Underscore.js)
  • в основном все, что есть в composer, может быть установлено как помощник в Laravel, но ряд помощников уже предоставлен

Сильные стороны Слабые стороны Возможности и угрозы (SWOT)

Первоначально опубликовано на laravelfeed.com.