Files
backPRO/AGENTS.md

3.1 KiB
Raw Permalink Blame History

Repository Guidelines

Zasady pisania kodu

  • Kod ma być czytelny „dla obcego”: jasne nazwy, mało magii
  • Brak „skrótów na szybko” typu logika w widokach, copy-paste, losowe helpery bez spójności
  • Każda funkcja/klasa ma mieć jedną odpowiedzialność, zwykle do 3050 linii (jeśli dłuższe dzielić)
  • max 3 poziomy zagnieżdżeń (if/foreach), reszta do osobnych metod
  • Nazewnictwo:
    • klasy: PascalCase
    • metody/zmienne: camelCase
    • stałe: UPPER_SNAKE_CASE
  • Zero „skrótologii” w nazwach (np. $d, $tmp, $x1) poza pętlami 23 linijki
  • medoo + prepared statements bez wyjątków (żadnego sklejania SQL stringiem)
  • XSS: escape w widokach (np. helper e())
  • CSRF dla formularzy, sensowna obsługa sesji
  • Kod ma mieć komentarze tylko tam, gdzie wyjaśniają „dlaczego”, nie „co”

Project Structure & Module Organization

BackPRO is a custom PHP MVC application (no Laravel/Symfony). Main code lives in src/ under PSR-4 namespace App\\.

  • src/Core/: bootstrap, routing, base controller/model, config/auth helpers.
  • src/Controllers/, src/Models/, src/Services/: HTTP actions, data access, external integrations.
  • templates/: PHP view templates.
  • config/routes.php: all route definitions.
  • cron/: CLI jobs (publish.php, semstorm.php).
  • migrations/: ordered SQL schema changes (001_*.sql, 002_*.sql, ...).
  • assets/: CSS/JS and WordPress theme files.
  • storage/logs/: runtime logs.

Build, Test, and Development Commands

  • composer install: install PHP dependencies.
  • php -S localhost:8000 -t .: run local dev server from repository root.
  • php cron/publish.php: run publishing workflow manually.
  • php cron/semstorm.php: sync SEO metrics manually.
  • php -l src\\Services\\PublisherService.php: lint a PHP file (repeat per changed file).

Coding Style & Naming Conventions

  • Target PHP >=8.1 (see composer.json), use strict typing where applicable.
  • Follow PSR-4 and existing suffix patterns: *Controller, *Service, *Model.
  • Use 4-space indentation and braces/newline style consistent with src/Core/App.php.
  • Keep controllers thin; move API/business logic to src/Services/.
  • Escape output in templates (htmlspecialchars) and use prepared statements via PDO/model layer.

Testing Guidelines

There is currently no dedicated tests/ suite in this repository. For each change:

  • Lint modified PHP files with php -l.
  • Run affected flows through UI endpoints and/or cron scripts.
  • Verify database-impacting changes with the relevant migration and rollback plan.
  • Document manual test steps in the PR.

Commit & Pull Request Guidelines

Git history favors Conventional Commit-style prefixes, especially feat: (for example: feat: Integrate DataForSEO...). Use:

  • feat:, fix:, refactor:, docs:, chore: with concise imperative summaries.
  • One logical change per commit; include migration changes in the same commit as dependent code.

PRs should include:

  • Clear scope and risk summary.
  • Linked issue/task ID (if available).
  • Setup/migration notes (migrations/00x_*.sql, .env changes).
  • Screenshots for template/UI updates (templates/, assets/).