Τα σύγχρονα PHP frameworks όπως το Laravel είναι ισχυρά, αλλά μερικές φορές χρειάζεστε κάτι πιο ελαφρύ. Σε αυτό το άρθρο θα χτίσουμε ένα minimal MVC framework που διαχειρίζεται routing, dependency injection και templating — χωρίς κανένα Composer package.
Το να καταλαβαίνεις πώς δουλεύει ένα framework από μέσα σε κάνει καλύτερο developer. Όταν ξέρεις πώς το routing αντιστοιχεί ένα URL σε μια controller action, το debugging γίνεται πιο γρήγορο. Όταν καταλαβαίνεις πώς το view layer εισάγει μεταβλητές, σταματάς να γράφεις spaghetti code.
app/
Components/
Router.php
Models/
endpoints/
public/
private/
index.phpΤο router αναλύει το URL και αντιστοιχεί τμήματα σε controllers και actions. Η υλοποίησή μας εξάγει μέχρι τέσσερα τμήματα: /scope/page/method/id.
Κάθε controller δηλώνει ποιες HTTP μέθοδοι αντιστοιχούν σε ποιες PHP μεθόδους μέσω της allowedActions(). Αυτή η απλή whitelist κρατά την API σας ρητή και ασφαλή.
Η καλύτερη αρχιτεκτονική είναι αυτή που ολόκληρη η ομάδα καταλαβαίνει από την πρώτη μέρα.
Ένα custom MVC framework χτισμένο με φροντίδα είναι συχνά πιο γρήγορο από ένα γενικής χρήσης. Κυρίως όμως, κατέχεις κάθε γραμμή — δεν υπάρχουν απροσδόκητες αλλαγές μεταξύ μεγάλων εκδόσεων.