Разработка
Репозиторий: github.com/ADamCarraway/journalphp
Как начать
- Сделайте fork репозитория на GitHub
- Разверните локальное окружение
- Создайте ветку для задачи:
- Новая функция:
feature/my-feature - Исправление бага:
fix/issue-123
- Новая функция:
- Внесите изменения, проверьте локально
- Откройте Pull Request в ветку
master
Поиск задач
Текущие задачи и баги — в GitHub Issues.
Перед созданием нового issue проверьте, не существует ли уже аналогичного.
Стек
| Технология | Версия | Назначение |
|---|---|---|
| PHP | 8.4+ | Backend (Laravel) |
| Laravel | 13 | Framework |
| Vue | 3 | Frontend |
| Inertia.js | 2 | SPA без отдельного API |
| Vite | 4+ | Сборка фронтенда |
| Tailwind CSS | 3 | Стили |
| Docker Compose | v2 | Локальное окружение |
| PHPUnit | ^12.5 | Тесты |
| Laravel Pint | — | Форматирование PHP |
Архитектура
Перед работой с кодом прочитайте раздел Архитектура проекта. Проект использует Actions, Repositories, Services и DTO — понимание структуры поможет избежать типичных ошибок.
Форматирование PHP
Запустите Pint перед коммитом:
bash
docker compose exec app ./vendor/bin/pintPint применяет Laravel coding style.
Frontend-стиль
Следуйте стилю существующих Vue-компонентов в resources/js/. Отдельного линтера нет — консистентность важна.
Тесты
bash
docker compose exec app php artisan test- Новая функция → добавьте Feature тест
- Исправление бага → добавьте тест, воспроизводящий проблему
- Тесты находятся в
tests/Feature/иtests/Unit/
Требования к Pull Request
| Требование | Детали |
|---|---|
| Фокус | Один PR — одно изменение (одна фича или один баг) |
| Заголовок | Конкретный: fix: comment reply notification not sent when author is blocked |
| Issue | Укажите Closes #123 если есть связанный issue |
| Описание | Объясните зачем, а не только что |
| Тесты | Покройте новый код тестами |
| Pint | Запустите форматтер перед пушем |
Зависимости
PHP-зависимости (после изменения composer.json):
bash
docker compose exec app composer installFrontend-зависимости (после изменения package.json):
bash
docker compose exec frontend npm installФоновые процессы в разработке
В контейнере app через Supervisor запускаются:
php artisan horizon— обработка очередейphp artisan reverb:start— WebSocket для уведомлений
Статус:
bash
docker compose exec app supervisorctl statusНормы поведения
При участии в проекте придерживайтесь Норм поведения.