Сегодня подготовим всю необходимую инфраструктуру. Установим и настроим локальный HTTP-сервер Nginx c PHP-FPM в Docker. А потом определим структуру файлов и директорий проекта для написания наших классов. Сделаем автозагрузку классов для фреймворка и демо-приложения с помощью Composer. Для тестирования установим PHPUnit и напишем свой первый тест. И заодно настроим интеграцию PHP и запуска тестов в PHPUnit.
- 00:01:29 - Демонстрационная HTML-страница
- 00:02:05 - Настройка табуляции с editorconfig
- 00:06:58 - Недостатки ручной установки
- 00:08:03 - Использование виртуализации
- 00:10:13 - Использование контейнеров
- 00:13:26 - Запуск процессов через Docker
- 00:18:11 - Создание своего образа с Nginx
- 00:20:51 - Работа с Docker Compose
- 00:23:05 - Установка PHP-FPM
- 00:26:52 - Упрощение запуска в терминале
- 00:28:56 - Философия одного процесса
- 00:30:58 - Консольный процесс PHP-CLI
- 00:32:45 - Переопределение пользователя
- 00:35:30 - Установка Composer
- 00:39:38 - Инициализация проекта
- 00:40:37 - Сортировка зависимостей
- 00:40:55 - Интеграция PHP в PhpStorm
- 00:43:37 - Структура исходного кода
- 00:44:40 - Автозагрузка классов проекта
- 00:47:14 - Подключение PHPUnit
- 00:49:19 - Донастройка тестов
- 00:51:23 - Подключение автозагрузчика
- 00:51:58 - Пробный класс и тест
- 00:54:07 - Команда запуска тестов
- 00:55:13 - Запуск тестов в PhpStorm
- 00:56:48 - Общепринятый Code Style
- 00:59:33 - Установка PHP CS Fixer
- 01:02:56 - Команды запуска
- 01:04:57 - Запуск Composer из Docker в PhpStorm
- 01:06:36 - Статический анализ кода
- 01:07:46 - Использование Psalm
- 01:10:12 - Автопроверка в PhpStorm
- 01:12:43 - Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Спасибо!
Спасибо!
Крутой урок!
Спасибо большое за урок. Вроде бы знакомая информация, но есть много интересных тонкостей
Дабавьте лайки. Хочется поставить лайк но нет такой возможности :) :)
Доброе утро.
Самый лучший "лайк" это написать словами благодарность Дмитрию.
p.s. Что вы, в самом деле, как неандертальцы!!! Что, без "наскальной" живописи никак не можете выразить свои мысли?
Неандерталец это ты, раз не понял что я своим комментарием выразил слова благодарности в завуалированной форме.
Не лайки а линк доната, куда можно ливануть бабла в багодарность, К тому же надо учитывать, что реализация нового функционала, отнимет время от уроков, которые и так не особо часто выходят, поэтому не стоит отвлекать Диму всякой не нужной хернёй. Спасибо, за урок Дима.
Спасибо большое, ждём следующих эпизодов.
С нетерпением жду продолжения именно этого проекта...
Шикарный урок!
Дмитрий, как всегда урок прекрасен.
Благодарю.
Интересно, о каких асинхронных вещах говорится? Что можно использовать вместо связки nginx + php-fpm?
В простейшем случае можно взять простой асинхронный сервер RoadRunner для запуска нашего обычного синхронного приложения.
В сложном случае можно построить полностью асинхронное приложение на асинхронных пакетах вроде Swoole, ReactPHP и AmPHP.
Спасибо вам, Дмитрий и Юлия! Понятно разобрана настройка докера и запуск контейнеров.
Спасибо!
Не могу победить. Версия композер 2.3.5
На этапе установки зависимости для PHP
Нашел что они тут правили это.
Но так и не понял почему не работает. Если речь про install - то мы же его не устанавливаем чтобы передать параметр
--ignore-platform-reqs
. А просто копируемВообщем не понимаю как победить
Это только в версии 2.3.5 или ещё и в других? Если только в этой, то можно попробовать другую:
Вот не сработала почему-то эта магия с RUN addgroup
Потому что на composer install выдавало ошибку:
Пришлось закомментить
USER app
чтобы композер устанавливал всё необходимое.
А, и почему-то ругалось на версию в docker-compose.yml
2.9 ему не нравилось, а вот 3.0 в самый раз. Вот сам текст ошибки:
Нужно добавить права на запись всем для самой папки
api
.В этом проекте у нас нет такой папки, она в проекте аукциона. Хотя впрочем, здесь это сработало по аналогии. Спасибо!
Добрый день, Дмитрий.
Подскажите, пожалуйста, почему при создании cli interpreter у меня в path mappings добавляется ещё один путь?
Посностью path mappings выглядит так:
Пытаюсь удалить его в Edit Progect Path Mappings, но он не активен.
Откуда подставляется этот путь и как его удалить, если он не нужен?
Версия PhpStorm 2022.3
Недавно в JetBrains добавили Scratch files. Это они теперь монтируются.
А можно ли это как-то отключить?
Под это создаётся image, container и volume. Какой толк от этого?
Может можно. Не интересовался.
Или войти через: