Рейтинг:5

Есть ли у встроенного веб-сервера PHP недостатки по сравнению с другими альтернативами локальной разработки?

флаг br

При просмотре Установите Drupal для локальной разработки, я полагал, что Drupal 8 и Drupal 9 поставляются со встроенным веб-сервером PHP, который можно быстро настроить, клонировав ядро ​​и запустив php -S локальный: 8000. Тем не менее, официальный Руководство по местному развитию не упоминает об этом и вместо этого советует использовать DDEV для местного развития.

Если встроенный веб-сервер PHP настраивается так быстро, почему я должен использовать DDEV или любые другие альтернативы для локальной разработки (например, WAMP/MAMP/XAMPP, Docker, облачные IDE Acquia и т. д.)? Есть ли у этих альтернатив функции, которых нет, например, у встроенного веб-сервера PHP?

leymannx avatar
флаг ne
Вы можете носить только туфли, чтобы ходить и выходить на улицу. Зачем тебе вся остальная одежда только для прогулок? DDEV (и, в некоторой степени, другие перечисленные альтернативы) заботится о гораздо большем, чем просто предоставление сервера для запуска Drupal. Он поставляется с SSL, Drush, базами данных, Composer и многими другими. Его можно настраивать, расширять, развертывать среди ваших коллег, он имитирует производственный сервер, на котором Drupal позже будет работать публично, и так далее. Вам всегда будет нужно больше, чем просто чистый PHP-сервер, чтобы с легкостью запускать Drupal.
Kevin avatar
флаг in
Веб-сервер php просто не дает никаких преимуществ. Это далеко не то, на что была бы похожа реальная среда, и каждая функция, которую вы захотите добавить, будет полной проблемой. Просто используйте Докер.
Рейтинг:8
флаг cn

Друпал 8 и 9 делают нет поставляются со встроенным веб-сервером.

php -S является PHPпростой веб-сервер для ограниченного тестирования. Подробнее читайте в руководстве по PHP.

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

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

Кроме того, встроенный сервер PHP имеет эту конкретную проблему:

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

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

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

apaderno avatar
флаг us
В PHP 7.4 встроенный веб-сервер можно настроить для разветвления нескольких рабочих процессов. Тем не менее, это не даст никакого представления о проблемах, которые сайт может иметь на рабочем сервере.
Christoph Burschka avatar
флаг cn
В частности, для Drupal обратите внимание, что однопоточное ограничение нарушит любые веб-тесты, которые вы запускаете через веб-интерфейс (подойдет CLI). PHPunit не может связаться с сервером, пока сервер уже занят запуском PHPunit.
Рейтинг:3
флаг us

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

Но с помощью Docker они обрабатывают их изолированно.Я могу запустить PHP 8.0 на своем основном ПК, развернуть проект разработки с использованием PHP 7.4/MySQL, протестировать другой проект на PHP 8.1/Postgres и исправить срочный запрос в службу поддержки для устаревшего приложения PHP 7.2.

Жонглировать несколькими версиями PHP, их расширениями и службами поддержки становится так же просто, как «DDEV start» / «DDEV stop».

Ответить или комментировать

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