9 инструментов для разработки проектов на PHP – База знаний Timeweb Community

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

1. PHPStorm

https://www.jetbrains.com/phpstorm/

Это интегрированная среда разработки (Integrated development environment, далее IDE) для PHP от компании JetBrains. В редакторе есть много полезных функций, он отлично подходит для работы с PHP, HTML и JS, имеет автоматические средства рефакторинга для PHP и JS, а также функцию автодополнения. Кроме того, в нем можно работать с SQL и базами данных.

Редактор платный, но имеет 30-дневный тестовый период. Есть специальные предложения: бесплатное использование для студентов и учителей, а также для разработчиков опенсорс-проектов.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

2.

XAMPP

https://www.apachefriends.org/ru/index.html

Это бесплатный инструмент, который легок и прост в установке и использовании. XAMPP это дистрибутив Apache, который помимо PHP содержит также Perl и MariaDB. А значит, отлично подойдет тем, кто работает с этой СУБД (ранее дистрибутив шел с MySQL). Имеет открытый исходный код.

3. Eclipse PDT

https://www.eclipse.org/pdt/

Это интегрированная среда разработки, которая свободно распространяется и подходит для разработки модульных кроссплатформенных приложений. Изначально Eclipse использовался для разработки проектов на Java, но специальный PDT плагин позволяет подключить поддержку PHP. В Eclipse есть все необходимые для разработки функции, такие как профилирование PHP-кода, подсветка синтаксиса и юнит-тестирование. Единственный недостаток — это ресурсоемкая среда, из-за чего ее будет проблематично использовать в небольших проектах.

4. ScriptCase

https://www.scriptcase.net/

ScriptCase RAD (rapid application development — быстрая разработка приложений) позволяет воздать веб-приложение буквально за несколько минут. Это веб-ориентированная платформа, ее можно установить на сервер в интернете. Она представляет собой платформу для разработчиков, позволяющую им использовать для генерации кода графическую оболочку, которая доступна прямо из браузера. Из минусов — сервис платный (от 349 долларов в год), но после установки есть тестовый 20-дневневный период.

5. phpDesigner

http://www.mpsoftware.dk/phpdesigner.php

phpDesigner — среда обработки, обладающая широким функционалом. В ней есть все для создания и отлаживания динамических веб-проектов, в том числе инструмент для чистки и улучшения PHP-кода. Также в этой IDE есть встроенные редакторы кода HTML5, CSS3 и JS. Благодаря интуитивно понятному интерфейсу пользоваться phpDesigner могут даже новички в разработке. Продукт является коммерческим, но имеет тестовый период в 21 день.

6. Aptana Studio

http://www.aptana.com/

Aptana Studio обладает удивительным для опенсорсного проекта количеством функций. Работает на Windows, Mac и Linux. Благодаря встроенному PHP-серверу и инструменту отладки вы можете интегрировать сюда другие инструменты PHP для создания и тестирования PHP-приложений в одном окружении.

7. Code Lobster

http://www.codelobster.com/

Code Lobster подойдет тем, кто ищет портативный IDE вариант. Эту среду разработки можно использовать как плагин для одной из популярных CMS (WordPress, Joomla, Drupal) или для популярного фреймворка (Symfony, Yii и т.д.). Code Lobster выпускается в двух версиях — бесплатной и платной, которая имеет расширенные функции.

8. PhpED

http://www.nusphere.com/

PhpED — один из множества инструментов PHP от компании NuSphere. Помимо PHP 7.1, этот редактор поддерживает HTML5, CSS3 и JS. Из интересных функций можно выделить встроенную поддержку DBG (отладчика и профилировщика для PHP) и возможность удаленной отладки PHP-скриптов. Также PhpED совместим со многими другими инструментами из этой статьи.

9. Sublime Text

https://www.sublimetext. com/

Эта известная программа прекрасно подойдет тем, кто ищет не IDE, а просто текстовый редактор. Быстрая навигация (Goto Anything) позволяет быстро находить нужные файлы или строки кода, а одновременное редактирование позволяет вносить изменения сразу в нескольких местах кода. Программу можно установить и использовать бесплатно, но это платный продукт, стоимость которого составляет 80 долларов (довольно скромно по сравнению с другими инструментами).

Какая из IDE для PHP 7 удобнее? — Хабр Q&A

Из бесплатных решений NetBeans, отличный вариант

Ответ написан

PHPStorm тоже на Java. И он однозначно лучше всех перечисленных.
Платный? Так это же основной рабочий инструмент. В чем проблема заплатить за него, ведь он будет вам генерить на порядки больше дохода.

Ответ написан

Есть 2 сегмента: коммерческий и open source. Из коммерческих самый лучший это PHPStorm, из open source — Aptana вроде ничего, но само собой коммерческий сегмент, на порядок лучше open source-ного. Поэтому только PHPStorm.

Ответ написан

Я вообще в свое время отказался от идеи использования IDE. Причиной стала Java, и как следствие, низкая скорость работы IDE в сравнении с Sublime Text, на который я и перешел в итоге. Использовал я ранее кстати PHPStorm, он тогда еще был для меня бесплатным по какой-то программе.

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

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

Из плюсов — Sublime Text имеет много возможностей, и расширений. Поэтому большая часть того, чего вам будет не хватать в отсутствие IDE, может быть перекрыта расширениями для Sublime Text и по сути из него можно сделать тот же IDE, только с некоторыми ограничениями относительно привычных разработчикам инструментов. Главным плюсом конечно является высокая скорость работы Sublime Text. Я сравнивал с подобным ему редактором Atom, и тот ощутимо, в разы уступает в скорости загрузки и отображения данных. Также к плюсам стоит отнести то, что лицензия на Sublime Text покупается единожды и бессрочно.

Надо учесть, что моей основной ОС для работы является Windows последних версий, и программы написанные на Java у меня почему-то всегда вызывали плохое впечатление в сравнении с более нативными вариантами относительно их производительности. Это как с MS Office и LibreOffice. Первая конечно быстрее и лучше работает, зато вторая бесплатная.

Ответ написан

Комментировать

Сразу прошу прощения за «некропост».
Для меня топовым решением стал brackets. Куча плагинов позволяют настроить её как душе угодно. Возможность работать по ФТП с файлами «напрямую», цветовое оформление можно извратить как душе угодно. Весит немного (в районе 51 мб) быстрая.
В общем, для себя я не нашёл ничего лучше. Ссылку оставлю тут
Ах да, конечно же бесплатная IDE!

Ответ написан

Я использую Netbeans. По факту начал использовать его после некоторой работы с PHPStorm (нелицензионная версия в Windows). А потом перешел на Linux Centos и халява закончилась, а покупать PHPStorm как-то не хочется пока что, так как на моем уровне я не сильно ускоряюсь благодаря именно PHPStorm. Самые используемые мной функции есть в Netbeans.

Выбирал из Atom, Sublime и Netbeans. Eclipse — не пробовал

Из всех перечисленных open source мне Netbeans показался наиболее приближенным по функционалу к PHPStorm.

Среди недостатков:
— Не открывает большие файлы (к примеру, дам базы данных. Открываю их редактором Geany, который открывает все, но не является IDE)

— Невозможность открыть несколько окон (хотя можно открыть несколько проектов в одном окне)
— Не выравнивает код при вставке автоматически
— Немного глючный вызов шаблонов кода (сниппетов)
— В винде еще и проблема с кодировками файлов — он тупо не переключает кодировки (в отличие от Atom)
— Медленно запускается. Но когда на atom повесил все нужное, тоже стал медленно запускаться, да еще и притормаживать при работе, чего в netbeans не бывает

Среди плюсов:
— Почти все, что нужно мне уже установлено.

В atom и sublime ковыряешься-ковыряешься, а толку никакого…
— Офигенный diff — по факту одно это уже выводит редактор в лидеры по сравнению с другими 2-мя
— Контроль версий
— Навигатор
— Гибкая настройка редактора (цвета)
— История файла — пару раз очень хорошо выручила, когда случайно затер файл

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

Ответ написан

более трёх лет назад

Комментировать

PhpIDE мультиплатформенный редактор кода можно даже через телефон кодить когд нет компа рядом
https://github.com/erkinkhidirov/PhpIDE

Ответ написан

Комментировать

3 способа создания локальной среды разработки PHP

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

Если вы используете PHP Composer, не беспокойтесь, он доступен во всех учетных записях InMotion Hosting.

PHP — это серверный язык сценариев

Поскольку вы только начинаете программировать для Интернета, вы, вероятно, уже знаете, что веб-код, который вы пишете локально, должен запускаться в веб-браузере. HTML и JavaScript будут работать в веб-браузере по умолчанию. Однако для запуска файлов PHP должна быть запущена программа PHP.

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

Запустить PHP-сервер по умолчанию

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

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

php -S локальный: 8000

Если вы перейдете по этому адресу localhost:8000 , вы сможете увидеть, как PHP прекрасно работает в вашем веб-браузере.

Имейте в виду, что на вашем компьютере уже должен быть установлен PHP. Но если у вас Mac, например, PHP уже установлен, и вы можете сразу запустить эту команду.

Простые способы запуска стека LAMP

Если у вас не установлен PHP, вы можете установить его, но есть более простые способы получить PHP и другое программное обеспечение для веб-разработки в одном пакете. Вы, наверное, слышали термин «стек LAMP», который означает Linux, Apache, MySQL и PHP (все важные программы для веб-разработки). Однако вам не нужна часть «Linux», чтобы получить остальное. Существуют приложения для Mac и Windows, которые дают вам все необходимое для веб-разработки в вашей текущей операционной системе.

Ниже мы рассмотрим некоторые из наиболее популярных вариантов:

Laragon
бесплатное приложение, позволяющее запускать стек «AMP» из Windows. Некоторые из функций включают SSL и набор для установки в один клик для популярных программ, таких как WordPress. Получите локальный сайт разработки WordPress и запустите его за несколько секунд. (Вы знаете, что всегда хотели его.)
MAMP
Mamp (бесплатно) и Mamp Pro (платно) предоставляют вам локальную среду разработки с необходимыми приложениями. Профессиональная версия позволяет вам легко создавать несколько хостов с удобным пользовательским интерфейсом.
XAMPP
Как и вышеупомянутый пакет MAMP, XAMPP предоставляет вам многие из тех же инструментов, но с немного другим интерфейсом.

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

Виртуальные контейнеры для разработки PHP (уровень магистра)

Использование стеков «AMP» — это простой и увлекательный способ начать веб-разработку. Вы можете буквально запустить полноценный веб-сервер с помощью одной простой установки. Для изучения основ веб-разработки и большинства профессиональных приложений этого достаточно.

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

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

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

Инструменты для разработки PHP — настройка локального сайта разработки

Будьте осторожны. Эта статья, скорее всего, устарела.

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

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

Хотя преимущества локальной разработки на PHP очевидны, процесс создания и запуска сайта может быть одной из наименее приятных частей разработки на PHP 9проект 0070. Для WordPress существует комплексное решение в виде Local by Flywheel. Но для обобщенного случая «разработки на PHP» каждый, кажется, находит свое собственное решение.

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

  1. Из чего состоит локальная среда разработки PHP?
    Что такое локальная среда разработки PHP?
    Какие программные компоненты и настройки необходимы?

  2. Как должен выглядеть локальный сайт разработки?
    Какие соображения мы должны сделать?
    Каких рекомендаций мы можем придерживаться?

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

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

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

Давайте рассмотрим все части, из которых состоит локальная среда разработки:

  1. Стек программного обеспечения

    Для большинства проектов PHP это будет включать базу данных и веб-сервер, в дополнение к самому PHP и базовой операционной системе. Например, почтенный стек LAMP состоит из L inux + A pache + M ySQL + P HP.

  2. Кодовая база проекта

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

  3. Конфигурация среды

    Хотя кодовая база должна быть одинаковой для рабочей и локальной сред, существует ряд параметров, которые будут различаться в разных средах. К ним относятся учетные данные базы данных, URL-адреса сайтов, порты и тому подобное.

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

  4. Средства разработки, сценарии и конфигурация

    Для разработки мы обычно используем ряд инструментов, таких как Git, Composer, Node, Yarn, Gulp и так далее. Некоторые из них могут быть необходимы только для локальной разработки, другие могут также находиться на сервере.

    Кроме того, нам часто приходится писать специальный «склеивающий» код, чтобы связать вещи воедино. Сюда входят сценарии оболочки, ловушки Git, а также файлы конфигурации. Как правило, эти файлы кода должны находиться под контролем версий, но могут находиться в отдельном репозитории.

  5. Конфигурация имени локального хоста

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

    При локальном запуске сайтов разработки нам необходимо предоставить способ сопоставления имен локальных хостов с нашими сайтами. Например, при доступе к локальному URL-адресу разработчика, такому как http://devsite.local в браузере, как этот запрос передается на сайт, который мы разрабатываем?

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

  6. Средства виртуализации/контейнеризации + конфигурация

    Виртуализация/контейнеризация — предпочтительный метод для локальной разработки, поэтому нам потребуется соответствующее программное обеспечение, установленное на нашем локальном компьютере. Сюда входят такие инструменты, как Vagrant или Lando.

    Эти инструменты обычно управляются через файл конфигурации (Vagrantfile, Landofile и т. д.), который должен находиться под контролем версий.

  7. Общие папки

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

    Стандартный способ сделать это — создать общую сетевую папку. Все содержимое этой папки на локальной машине будет доступно внутри виртуализированной среды.

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

Фотография старого компьютера Apple, сделанная Стивом Юрветсоном через Flickr

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

Вот несколько рекомендаций для системы, которую мы хотим получить:

  1. Настройте выделенную локальную среду разработки. Это означает, что мы можем запускать наше веб-приложение и получать доступ к его службам на нашей собственной машине .

    Без этого нам пришлось бы отправлять код на сервер для проверки любых изменений кода. Отсутствие возможности тестировать код локально серьезно замедляет разработку. Кроме того, если нам нужно выполнить push перед тестированием, мы, вероятно, также загрязним наш репозиторий излишними коммитами в процессе.

  2. Изолировать среду разработки от операционной системы нашей физической машины.

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

  3. Изолировать каждый сайт разработки .

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

  4. Обеспечьте возможность развертывания в рабочей среде и на промежуточной стадии .

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

  5. Поддерживайте локальную среду разработки как можно ближе к производственной среде как можно.

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

  6. Убедитесь, что мы знаем, как воссоздать наши сайты разработки .

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

Четыре основных способа настройки локального сайта разработки

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

  1. Настройте все компоненты стека на нашем локальном компьютере:

    Примеры: Пользовательский стек LAMP , Valet

    ✓ Максимально возможная производительность среди всех решений
    ⨉ Нет изоляции среды разработки и локального компьютера
    ⨉ Нет уровня конфигурации на основе кода
    ⨉ Отсутствие изоляции сайта разработки

  2. Использовать готовый стек с графическим интерфейсом:

    Примеры: XAMPP / MAMP / WAMP

    ✓ Простая настройка
    ✓ Графический интерфейс
    ⨉ Нет уровня конфигурации на основе кода
    ⨉ Отсутствие изоляции сайта разработки

  3. Установить все компоненты стека внутри виртуальной машины (ВМ):

    Примеры: Бродяга , Усадьба

    ✓ Удобный
    ✓ Мощный
    ✓ Изоляция сайта разработки с помощью отдельных виртуальных машин
    ⨉ Требовательный к ресурсам
    ⨉ Для изоляции сайта разработки требуется много места на диске

  4. Распределить компоненты стека по нескольким контейнерам :

    Примеры: Docker , Lando , DDEV

    ✓ Высокая производительность
    ✓ Низкие требования к дисковому пространству на сайте
    ✓ Изоляция сайта разработки
    ⨉ Проблемы с производительностью, если не используется Linux
    ⨉ Известные проблемы с некоторыми инструментами и методами

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

  1. Бродяга (ВМ)
  2. Усадьба (ВМ)
  3. Valet (Система)
  4. Докер (контейнер)
  5. DDEV (контейнер)
  6. Lando (контейнер)

Бродяга

Vagrant — это популярный инструмент для настройки и запуска локальной среды разработки внутри виртуальной машины . Для этого Vagrant работает с различными поставщиками виртуальных машин, такими как VirtualBox, VMware и т. д. Для настройки среды разработки Vagrant использует инструмент подготовки, основными примерами которого являются Chef и Puppet.

Чтобы связать все воедино, Vagrant использует сценарий Ruby, который называется Vagrantfile. Теоретически Vagrantfile содержит всю информацию, необходимую для репликации среды разработки из данного ящика. Однако на практике можно получить минимальный Vagrantfile, а фактическая конфигурация будет перенесена в конфигурацию инструмента подготовки.

Разработка с помощью Vagrant начинается с «коробки», которая представляет собой предварительно упакованную среду, ориентированную на конкретный вариант использования. Есть много общедоступных ящиков на выбор ; они могут варьироваться от чистой операционной системы Linux / Unix до полностью настроенной среды разработки. Для разработки PHP можно выбирать из множества специализированных блоков. Обычно они включают предустановленное программное обеспечение, такое как:

  • Apache и/или Nginx
  • MySQL или MariaDB
  • PHP 7.x
  • PHP-fpm
  • Гит
  • Композитор
  • Xdebug

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

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

Конфигурация Vagrant box предоставляет широкие возможности управления . Тем не менее, для большинства случаев использования PHP при разработке, вероятно, лучше начать с Homestead.

Веб-сайт: vagrantup.com
Поддерживаемые операционные системы: Linux, macOS, Windows

Усадьба Ларавеля

Homestead — это коробка Vagrant , предоставленная проектом Laravel . Содержимое коробки предназначено для разработки PHP:

«Laravel Homestead — это официальная, предварительно упакованная коробка Vagrant, которая предоставляет вам прекрасную среду разработки без необходимости установки PHP, веб-сервера и любого другого серверного программного обеспечения на вашем локальном компьютере. Больше не нужно беспокоиться о том, чтобы испортить вашу операционную систему!»

Homestead поставляется с множеством интересных функций: на одном компьютере Homestead можно запускать несколько сайтов разработки, каждый со своей версией PHP и настройкой SSL. Существует специальных команд для общих операций , таких как резервное копирование и восстановление баз данных. Homestead также поддерживает несколько веб-серверов и позволяет изящно переключаться между ними.

Вместо традиционного Vagrantfile для Vagrant Homestead использует файл Homestead.yaml для настройки. это содержит всю конфигурацию для нашего проекта и может использоваться совместно с командой для настройки идентичных сред разработки.

Имейте в виду, что экземпляр Homestead может привести к созданию большого файла виртуальной машины . Нередко этот файл занимает 5–15 ГБ на локальном диске. Чтобы добиться настоящей изоляции сайта разработки, нам, возможно, придется запустить несколько экземпляров Homestead. Если на нашей локальной машине установлен только небольшой SSD, это может стать серьезным недостатком.

Веб-сайт: laravel.com/docs/7.x/homestead
Поддерживаемые операционные системы: Linux, macOS, Windows

Ларавель Валет

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

  • Valet работает только на определенных машинах и требует внесения изменений в локальную систему:

    «Valet поддерживает только Mac и требует, чтобы вы установили PHP и сервер базы данных непосредственно на свой локальный компьютер».

  • Valet использует несколько служб, работающих на локальном компьютере:

    «Laravel Valet настраивает ваш Mac так, чтобы Nginx всегда запускался в фоновом режиме при запуске компьютера. Затем, используя DnsMasq, Valet проксирует все запросы в домене *.test, чтобы они указывали на сайты, установленные на вашем локальном компьютере».

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

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

«Valet не является полной заменой Vagrant или Homestead, но представляет собой отличную альтернативу, если вам нужны гибкие основы, вы предпочитаете экстремальную скорость или работаете на машине с ограниченным объемом оперативной памяти».

Веб-сайт: laravel.com/docs/7.x/valet
Поддерживаемые операционные системы: только macOS

Докер

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

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

  • Docker Desktop на Mac и Windows использует виртуальную машину, что сводит на нет некоторые преимущества производительности.
  • Xdebug и репозитории с символическими ссылками могут вызывать проблемы с Docker.

Кроме того, настройка среды разработки с помощью Docker технически сложна. Если вы не суперпрофессионал и точно не знаете, что делаете, вы, скорее всего, не захотите использовать чистый Docker. Вероятно, лучше использовать уровень абстракции , такой как Lando или DDEV, для настройки локальной среды разработки PHP на основе контейнеров.

Веб-сайт: docker.com
Поддерживаемые операционные системы: Linux, macOS, Windows

Ландо

Lando — мощный инструмент разработки, основанный на Docker. Основная идея состоит в том, чтобы позволить нам пользоваться преимуществами контейнеров Docker без головной боли, связанной с их настройкой.

Разработка с Лэндо начинается с «рецепта». Рецепт для Lando — это то же самое, что коробка для Vagrant : предопределенный набор технологий, которые должны использоваться вместе для запуска сайтов разработчиков.

«Рецепты — это абстракция самого высокого уровня Lando, и они содержат общие комбинации маршрутизации, сервисов и инструментов»

Ассортимент рецептов Lando охватывает различные стеки , такие как LAMP, LEMP и MEAN. Также можно найти специализированные рецепты для популярных систем управления контентом и фреймворков веб-приложений. Независимо от того, хотите ли вы начать проект с использованием Drupal, WordPress или Laravel, Lando поможет вам.

Для общей разработки PHP мы можем начать с рецепта LAMP. Как только мы инициализируем наш проект Lando, для нас создается файл конфигурации YAML. Это так называемая «Landofile» содержит всю конфигурацию для нашего проекта . Здесь мы можем определить нашу версию PHP, порты и другие сетевые настройки, переменные среды и тому подобное. Как правило, Lando стремится обеспечить разумные значения по умолчанию с помощью своих рецептов и предлагает механизмы, позволяющие нам переопределять эти значения по умолчанию.

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

Одно предостережение: Lando для macOS и Windows поставляется с собственной версией Docker Desktop, которая может вызвать проблемы, если в вашей системе уже установлен Docker . У Lando также довольно высокие требования к оборудованию, что может стать серьезным препятствием для некоторых разработчиков.

Веб-сайт: lando.dev
Поддерживаемые операционные системы: Linux, macOS, Windows

ДДЕВ

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

В отличие от Lando, DDEV ориентирован исключительно на разработку PHP . Хотя в нем отсутствует концепция «рецептов», DDEV предоставляет специализированные конфигурации для широко используемых систем и сред управления контентом PHP. На момент написания DDEV поставляется с поддержкой конфигурации для следующих систем:

  • WordPress
  • Друпал 6/7/8/9
  • ТИПО3
  • Мадженто 1/2
  • Ларавель

Особое внимание к PHP-разработке упрощает задачу, поскольку позволяет разработчикам DDEV делать более взвешенный выбор. В стандартную комплектацию DDEV входят полезные инструменты, такие как Xdebug, Ngrok и MailHog. В целом, DDEV кажется более легким, чем Lando, и в настоящее время может быть самым быстрым решением для запуска и работы сайта разработки PHP.

Веб-сайт: ddev.com
Поддерживаемые операционные системы: Linux, macOS, Windows

См. также наш дополнительный пост о том, как настроить DDEV для Craft CMS за 15 минут.

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

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

Чтобы получить более полную картину, мы должны выйти за рамки чисто технических факторов и включить в рассмотрение экосистему каждого решения : можем ли мы полагаться на актуальную документацию и постоянную разработку? Легко ли найти отчеты об ошибках, ответы на вопросы StackOverflow и сообщения в блогах по определенным темам?

Кроме того, чтобы найти правильное решение для наших нужд, нам нужно спросить себя: какое развитие мы делаем ? Мы создаем сайты исключительно на PHP или используем и другие языки? Работаем ли мы в рамках выбранного нами языка в основном в рамках одной конкретной экосистемы или разрабатываем с использованием разных фреймворков и систем?

Хотя дать подробные рекомендации сложно, вот краткое изложение обсуждаемых технологий, а также их самый сильный вариант использования :

В большинстве случаев используйте…

  • Homestead , если вас устраивает использование виртуальной машины. Homestead предлагает отличную экосистему, поэтому легко найти руководства по настройке различных проектов на основе PHP. Поскольку Homestead работает поверх Vagrant, при необходимости вы можете просто добавить дополнительные блоки для разработки на других языках. Имейте в виду, что каждая коробка занимает несколько гигабайт дискового пространства.

  • DDEV , если вы собираетесь разрабатывать только с использованием PHP и хотите, чтобы ваш сайт заработал как можно быстрее. Это особенно хороший выбор, если вы используете Linux, так как вы получите полное преимущество производительности Docker.

Если у вас есть особые требования, рассмотрите…

  • Vagrant , если вам нужна настраиваемость превыше всего и вы можете использовать виртуальную машину.

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

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

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

  • КСАМПП / МАМП /WAMP , для обучения и экспериментов. Это не лучший выбор для серьезной разработки из-за отсутствия изоляции сайта.

Обзор функций средства разработки и сравнение

Используйте эту таблицу, чтобы получить краткий обзор относительных сильных и слабых сторон каждого инструмента.