Επισκόπηση αρχιτεκτονικής¶
Η εφαρμογή είναι μονολιθική 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, κ.λπ. με middlewareauth(χωρίς πάνταcompanyσε όλες τις σελίδες — ελέγχεται ανά περίπτωση στα routes).
Βάση δεδομένων¶
- Migrations:
db/migrations/(Phinx). - Seeds:
db/seeds/.
Εξωτερικές βιβλιοθήκες (ενδεικτικά)¶
nikic/fast-route— routingtwig/twig— templatesvlucas/phpdotenv—.envtracy/tracy— debug bar (development)robthree/twofactorauth— 2FA- QR providers για κωδικούς 2FA / barcodes
Περαιτέρω ανάγνωση¶
- Λειτουργίες ανά domain:
docs/02-features/ - Αναφορά ανά module:
docs/03-reference/