TGViewer
Пятиминутка PHP Пятиминутка PHP @tg_5minphp · 2.79K subscribers
Post #1304 3.95K
Недавно я занялся настройкой новой операционной системы macOS, начиная с нуля. В этот раз решил опробовать развёртывание PHP-разработки с использованием Laravel Herd (https://herd.laravel.com) — приложения, включающего в себя готовые бинарные файлы PHP, nginx и DNSMasq.

Установка прошла гладко, согласно инструкции, и с первой попытки заработало всё, включая Xdebug.

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

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

Однако, то, что мне категорически не нравится в Laravel Valet, так это то, что вся гибкость настройки конфигурации nginx перекладывается с файла конфигурации nginx на так называемые Valet Drivers, написанные на PHP. На первый взгляд, работа с Drivers может показаться проще, чем настройка nginx, но это кажется неестественным и оторванным от реальных условий производственной среды, где, в конечном итоге, всё равно приходится работать с конфигурацией nginx.

Для тех, кто не знаком с Laravel Valet, вот интересный и, возможно, шокирующий факт: все запросы обрабатываются через некий файл server.php, который, благодаря системе Drivers, заменяет собой роутинг на уровне nginx. Это означает, что вместо использования директив location в конфигурации nginx, мы имеем набор условий if в PHP-коде.

Более того, через инфраструктуру Valet проходят даже HTTP-запросы на получение статических файлов. Например, когда браузер запрашивает my-site.test/logo.png, запрос проходит через множество PHP-кода внутри Laravel Valet. Файл определяется с помощью file_exists(), и контент logo.png в итоге отдаётся через PHP-FPM, что кажется довольно необычным решением. 🙈
Laravel Herd Laravel Development perfected - One click PHP development environment.
  • 🤯 34
  • 🤮 29
  • 👍 6
  • 😁 2
  • 😢 1
  • 💩 1
  • 😐 1
More from @tg_5minphp
  1. Sep 28, 2026Запустили Пыхник и неделю PHP! Залетайте на первый открытый доклад от Дмитрия Dantes про к…
  2. Sep 10, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  3. Jul 27, 2026Работа с Claude Code "в лоб": создай dynamic worflow, чтобы найти все баги, запиши их в BU…
  4. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  5. Jul 3, 2026Запустили краудфандинг!!! 11 сентября в Art Village под Москвой собираем небольшую PHP-кон…
  6. Jul 3, 2026Продано!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →