Skip to content

Разработка

Репозиторий: github.com/ADamCarraway/journalphp

Как начать

  1. Сделайте fork репозитория на GitHub
  2. Разверните локальное окружение
  3. Создайте ветку для задачи:
    • Новая функция: feature/my-feature
    • Исправление бага: fix/issue-123
  4. Внесите изменения, проверьте локально
  5. Откройте Pull Request в ветку master

Поиск задач

Текущие задачи и баги — в GitHub Issues.

Перед созданием нового issue проверьте, не существует ли уже аналогичного.

Стек

ТехнологияВерсияНазначение
PHP8.4+Backend (Laravel)
Laravel13Framework
Vue3Frontend
Inertia.js2SPA без отдельного API
Vite4+Сборка фронтенда
Tailwind CSS3Стили
Docker Composev2Локальное окружение
PHPUnit^12.5Тесты
Laravel PintФорматирование PHP

Архитектура

Перед работой с кодом прочитайте раздел Архитектура проекта. Проект использует Actions, Repositories, Services и DTO — понимание структуры поможет избежать типичных ошибок.

Форматирование PHP

Запустите Pint перед коммитом:

bash
docker compose exec app ./vendor/bin/pint

Pint применяет 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 install

Frontend-зависимости (после изменения 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

Нормы поведения

При участии в проекте придерживайтесь Норм поведения.

Released under the MIT License.