Μετάβαση στο περιεχόμενο

Επισκόπηση αρχιτεκτονικής

Η εφαρμογή είναι μονολιθική PHP με δρομολόγηση (routing) μέσω FastRoute, Twig για HTML views, και REST-στυλ JSON API κάτω από το prefix /api.

Επίπεδα

Επίπεδο Περιγραφή
Είσοδος public/index.php — bootstrap, .env, middleware ασφαλείας, ενοποίηση $_POST από JSON/form.
Δρομολόγηση app/Routes/*.php — ορισμός διαδρομών API, σελίδων, auth, admin.
Controllers app/Controllers/ — λογική αιτήματος· τα View controllers βρίσκονται σε Controllers/View/.
Models app/Models/ — πρόσβαση στη βάση μέσω App\Core\Model και Database.
Core Router, Auth, Middleware, View, TwigService, Controller βάσης.
Υπηρεσίες / Utils app/Services/, app/Utils/ — επιχειρησιακή λογική (π.χ. 2FA, CSRF, προεπιλογές εταιρείας).
Παρουσίαση Twig templates σε app/Views/, στατικά assets σε public/assets/.

Middleware

Το App\Core\Middleware υποστηρίζει:

  • auth — συνδεδεμένος χρήστης
  • company — ενεργή εταιρεία (πολυενοικίαση)
  • role:… — ρόλος (π.χ. role:admin)
  • permission:… — δικαίωμα
  • csrf — επικύρωση CSRF σε μεταβαλλόμενα αιτήματα

Οι ομάδες διαδρομών στο ApiRoutes.php εφαρμόζουν συνήθως auth + company για επιχειρησιακά endpoints.

Πολυενοικίαση (εταιρείες)

Οι χρήστες συνδέονται με εταιρεία (comid). Τα περισσότερα API endpoints φιλτράρουν δεδομένα ανά εταιρεία μέσω Auth::companyId().

API vs Views

  • API: POST/GET/PUT/DELETE στο /api/... — JSON (ή form όπου ορίζεται).
  • Views: σελίδες υπό /dashboard, /documents (δελτία), /traders, κ.λπ. με middleware auth (χωρίς πάντα company σε όλες τις σελίδες — ελέγχεται ανά περίπτωση στα routes).

Βάση δεδομένων

  • Migrations: db/migrations/ (Phinx).
  • Seeds: db/seeds/.

Εξωτερικές βιβλιοθήκες (ενδεικτικά)

  • nikic/fast-route — routing
  • twig/twig — templates
  • vlucas/phpdotenv.env
  • tracy/tracy — debug bar (development)
  • robthree/twofactorauth — 2FA
  • QR providers για κωδικούς 2FA / barcodes

Περαιτέρω ανάγνωση

  • Λειτουργίες ανά domain: docs/02-features/
  • Αναφορά ανά module: docs/03-reference/