Мое dev окружение для PHP проектов

Разработка проектов требует не только навыков программирования, но и умения настроить эффективное рабочее окружение. В этой статье я поделюсь своим опытом создания dev-окружения для PHP-проектов с использованием Docker. Я расскажу, как организовать файловую структуру, настроить Dockerfile и docker-compose.yml, а также поделюсь полезными советами по оптимизации и безопасности. Независимо от того, работаете ли вы над pet-проектом или готовитесь к командной разработке, эти практики помогут вам создать надежную и гибкую среду разработки.

Dev окружение с Docker (generated by ChatGPT)

В основу этого окружения легли мои любимые и часто используемые инструменты:

  • Docker для контейнеризации
  • Docker compose для управления контейнерами
  • PHP последней версии
  • Composer для управления зависимостями PHP
  • xDebug для отладки приложения
  • RoadRunner для запуска приложения в режиме Long-Running
  • PHP-фреймворк Yii3
  • БД PostgreSQL, т.к. она умеет в keep-alive коннекты, в отличие от некоторых.

September 30, 2024
Около 6 мин
Пример настройки xDebug в докере

Когда-то давно я собрал рабочий комбайн из PHP, xDebug, Docker и PhpStorm. С тех пор я таскаю его из проекта в проект и горя не знаю. Для тех, у кого настройка локального окружения с докером и xDebug вызывает сложности, выкладываю этот конфиг с пояснениями. Ниже мы напишем образ контейнера с установленным в нем xDebug, настроим PhpStorm и разберем рабочую конфигурацию Docker Compose.

Пример настройки xDebug в докере

January 21, 2023
Около 3 мин
Как запускать на компьютере PHP, не устанавливая его (Linux)

Ответ прост и очевиден: я использую Docker 😃 Преимущества, которые я получаю от такого использования PHP:

  • Не надо морочаться с настройкой локального окружения, переключением версии PHP, установкой дополнительных библиотек и разрешением конфликтов
  • Достаточно одного текстового файла с алиасами командной строки, чтобы любая актуальная версия PHP работала на любом компьютере. А отсюда
    • Легкость переноса данных между машинами
    • Можно спокойно снести систему на своем основном компьютере, восстановление работы с PHP будет просто как git pull

Заметка

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

Как запускать на компьютере PHP, не устанавливая его

August 19, 2022
Около 5 мин
Два типа классов для вашего проекта

Вопрос о зоне ответственности того или иного класса в вопросах архитектуры не менее важен, чем ее стратегическое планирование. Сегодня я расскажу о том, как облегчить себе эту работу. Мы с вами решим довольно большое количество вопросов, из бесконечного многообразия классов оставив всего 2 их типа: ДТО и Сервис. Эти типы классов покрывают 90-99% всего необходимого в любом проекте. Итак, разберём, что они из себя представляют, и чем же так хорошо оставить только их.

Два типа классов для вашего проекта

June 16, 2022
Около 4 мин