1. Validation Rules: Πιο καθαρός και κατανοητός κώδικας
Το Validation αποτελεί έναν από τους σημαντικότερους μηχανισμούς κάθε διαδικτυακής εφαρμογής.
Όταν ένας χρήστης συμπληρώνει μια φόρμα, το σύστημα πρέπει να ελέγχει αν τα δεδομένα είναι έγκυρα πριν τα επεξεργαστεί.
Για παράδειγμα, μια εφαρμογή μπορεί να απαιτεί έγκυρη διεύθυνση email, συγκεκριμένη μορφή τηλεφωνικού αριθμού ή έναν υποχρεωτικό κωδικό πρόσβασης.
Το Laravel υποστηρίζει εδώ και χρόνια τέτοιους ελέγχους μέσω κανόνων που ορίζονται ως συμβολοσειρές.
Ένα απλό παράδειγμα είναι:
$request->validate([
'email' => 'required|email',
'password' => 'required|min:8',
]);Η συγκεκριμένη σύνταξη είναι σύντομη και λειτουργική. Ωστόσο, γίνεται λιγότερο ευανάγνωστη όταν οι κανόνες είναι περισσότεροι ή περιλαμβάνουν σύνθετες παραμέτρους.
Τι αλλάζει στο Laravel 13.36;
Η νέα έκδοση επεκτείνει τους λεγόμενους Fluent Rule Builders σε όλους τους ενσωματωμένους κανόνες Validation που προηγουμένως δεν είχαν αντίστοιχη μέθοδο.
Έτσι, ο προγραμματιστής μπορεί να εκφράζει περισσότερους κανόνες μέσω μεθόδων της κλάσης Rule.
Για παράδειγμα:
use Illuminate\Validation\Rule;
$request->validate([
'phone' => [
Rule::requiredWithout('email')
],
'website' => [
'nullable',
Rule::url()->protocols(['https'])
],
'device_id' => [
Rule::uuid()->version(4)
],
]);Στο συγκεκριμένο παράδειγμα:
Το τηλέφωνο είναι υποχρεωτικό όταν δεν υπάρχει email.
Η διεύθυνση ιστοσελίδας, εφόσον δοθεί, πρέπει να χρησιμοποιεί HTTPS.
Το αναγνωριστικό συσκευής πρέπει να έχει μορφή UUID έκδοσης 4.
Το σημαντικό πλεονέκτημα είναι ότι το περιβάλλον ανάπτυξης μπορεί να προτείνει διαθέσιμες μεθόδους μέσω του IDE Autocomplete.
Αυτό διευκολύνει τη συγγραφή του κώδικα και μειώνει την ανάγκη να θυμάται ο προγραμματιστής τη σύνταξη κάθε κανόνα.
Επιπλέον, οι παράμετροι ορισμένων κανόνων μεταφέρονται πλέον ως δομημένες τιμές, αποφεύγοντας προβλήματα όταν περιέχουν χαρακτήρες όπως το κόμμα.
Η προηγούμενη σύνταξη με συμβολοσειρές εξακολουθεί να υποστηρίζεται. Επομένως, δεν απαιτείται να ξαναγράψουμε όλους τους υπάρχοντες κανόνες.
2. DB::olap(): Καλύτερη διαχείριση μεγάλων ερωτημάτων
Η δεύτερη σημαντική προσθήκη αφορά την επικοινωνία του Laravel με βάσεις δεδομένων.
Στις περισσότερες εφαρμογές, οι συνηθισμένες λειτουργίες είναι σχετικά απλές: ανάκτηση εγγραφών, εισαγωγή δεδομένων και ενημέρωση πληροφοριών.
Υπάρχουν όμως περιπτώσεις όπου απαιτείται επεξεργασία πολύ μεγαλύτερου όγκου δεδομένων.
Ας φανταστούμε μια εφαρμογή ηλεκτρονικού εμπορίου με εκατομμύρια παραγγελίες.
Ο διαχειριστής θέλει να υπολογίσει τον συνολικό τζίρο κάθε πελάτη για τα τελευταία τρία χρόνια.
Αυτό απαιτεί συγκέντρωση και ομαδοποίηση μεγάλου αριθμού εγγραφών.
OLTP και OLAP: Ποια είναι η διαφορά;
Οι βάσεις δεδομένων χρησιμοποιούνται για διαφορετικούς τύπους εργασιών.
Το OLTP (Online Transaction Processing) αφορά κυρίως τις καθημερινές συναλλαγές, όπως η καταχώριση παραγγελιών και η ενημέρωση λογαριασμών.
Το OLAP (Online Analytical Processing) αφορά αναλυτικές εργασίες, όπως στατιστικά στοιχεία, αναφορές και συγκεντρωτικούς υπολογισμούς.
Οι δύο κατηγορίες έχουν διαφορετικές απαιτήσεις, ιδιαίτερα όταν η ποσότητα δεδομένων είναι μεγάλη.
Η νέα μέθοδος DB::olap()
Το Laravel 13.36 προσθέτει τη μέθοδο DB::olap(), η οποία λειτουργεί με βάσεις δεδομένων που χρησιμοποιούν την υποδομή Vitess, όπως η PlanetScale.
Στην PlanetScale, το προεπιλεγμένο OLTP workload επιβάλλει όριο 100.000 γραμμών στα αποτελέσματα ενός ερωτήματος.
Η νέα μέθοδος επιτρέπει την προσωρινή μετάβαση σε OLAP workload για την εκτέλεση συγκεκριμένων εργασιών.
Ένα παράδειγμα:
use Illuminate\Support\Facades\DB;
use App\Models\Order;
$revenue = DB::olap(fn () =>
Order::query()
->selectRaw(
'customer_id, SUM(total) as revenue'
)
->groupBy('customer_id')
->get()
);Το Laravel ενεργοποιεί προσωρινά το κατάλληλο workload, εκτελεί το ερώτημα και στη συνέχεια επαναφέρει την προηγούμενη ρύθμιση.
Σε μια συνηθισμένη εγκατάσταση MySQL που δεν χρησιμοποιεί Vitess, το callback εκτελείται κανονικά χωρίς την αλλαγή workload.
Τι σημαίνει πρακτικά;
Ο προγραμματιστής μπορεί να χρησιμοποιήσει την ίδια λογική εφαρμογής σε διαφορετικά περιβάλλοντα, αξιοποιώντας τις ειδικές δυνατότητες της βάσης όταν είναι διαθέσιμες.
Πρέπει, ωστόσο, να διευκρινιστεί ότι η DB::olap() δεν βελτιστοποιεί αυτόματα κάθε αργό ερώτημα.
Η απόδοση εξακολουθεί να εξαρτάται από τον σχεδιασμό της βάσης, τα indexes, το SQL query και την υποδομή που χρησιμοποιείται.
3. Queue Workers: Λύση σε ένα δύσκολα ορατό πρόβλημα
Το Laravel διαθέτει έναν μηχανισμό που ονομάζεται Queue, μέσω του οποίου εργασίες εκτελούνται στο παρασκήνιο.
Για παράδειγμα, όταν ένας χρήστης ολοκληρώνει μια παραγγελία, η εφαρμογή μπορεί να αναθέτει την αποστολή email σε έναν Queue Worker.
Έτσι, ο χρήστης δεν χρειάζεται να περιμένει να ολοκληρωθεί η αποστολή για να λάβει απάντηση από το σύστημα.
Οι Queue Workers αποτελούν διεργασίες που μπορούν να παραμένουν ενεργές για μεγάλο χρονικό διάστημα, εκτελώντας διαδοχικές εργασίες.
Αυτή η συμπεριφορά δημιουργεί ορισμένες τεχνικές προκλήσεις.
Το πρόβλημα με τις Sticky Connections
Σε μια εγκατάσταση βάσης δεδομένων μπορεί να υπάρχει ξεχωριστή σύνδεση για εγγραφή και ξεχωριστή για ανάγνωση.
Όταν είναι ενεργοποιημένη η επιλογή sticky, το Laravel κατευθύνει τις επόμενες αναγνώσεις στη σύνδεση εγγραφής, εφόσον έχει προηγηθεί εγγραφή.
Αυτό βοηθά στην αποφυγή προβλημάτων όταν τα δεδομένα δεν έχουν ακόμη συγχρονιστεί με τα αντίγραφα ανάγνωσης.
Όμως ένας Queue Worker μπορεί να επεξεργάζεται πολλές διαφορετικές εργασίες μέσα στην ίδια διεργασία.
Αν μια εργασία πραγματοποιήσει εγγραφή, η κατάσταση sticky μπορεί να επηρεάσει τις επόμενες εργασίες.
Έτσι, αναγνώσεις που θα μπορούσαν να εκτελεστούν σε read replica ενδέχεται να κατευθύνονται άσκοπα στην κύρια βάση.
Η νέα δυνατότητα
Το Laravel 13.36 επιτρέπει την επαναφορά αυτής της κατάστασης πριν από την εκτέλεση κάθε νέας εργασίας.
Η λειτουργία ενεργοποιείται προαιρετικά:
use Illuminate\Queue\Worker;
Worker::$flushStickyConnections = true;Η ρύθμιση μπορεί να εφαρμοστεί στη μέθοδο boot() του AppServiceProvider.
Με αυτόν τον τρόπο περιορίζεται η ανεπιθύμητη μεταφορά της sticky κατάστασης μεταξύ διαφορετικών jobs.
Η λειτουργία είναι απενεργοποιημένη από προεπιλογή, καθώς ορισμένες εφαρμογές ενδέχεται να εξαρτώνται από την άμεση ανάγνωση δεδομένων που εγγράφηκαν σε προηγούμενη εργασία.
Επομένως, η ενεργοποίησή της πρέπει να προηγείται από έλεγχο της συμπεριφοράς της εφαρμογής.
4. Βελτιώσεις στην αποστολή email μέσω Queues
Μια ακόμη σημαντική αλλαγή αφορά την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου.
Σε πολλές εφαρμογές, τα email δημιουργούνται με βάση δεδομένα που βρίσκονται στη βάση.
Για παράδειγμα, μια παραγγελία μπορεί να ενεργοποιήσει την αποστολή ενημερωτικού μηνύματος στον πελάτη.
Τι συμβαίνει όμως εάν η παραγγελία διαγραφεί πριν προλάβει ο Queue Worker να επεξεργαστεί το email;
Σε τέτοιες περιπτώσεις μπορεί να δημιουργηθεί σφάλμα, επειδή το σχετικό μοντέλο δεν υπάρχει πλέον.
Το Laravel 13.36 διορθώνει τη συμπεριφορά των queued mailables ώστε να λαμβάνουν υπόψη το χαρακτηριστικό DeleteWhenMissingModels.
Επιπλέον, διορθώνεται η υποστήριξη του FailOnTimeout, ώστε ένα email που ξεπερνά το προβλεπόμενο χρονικό όριο να αντιμετωπίζεται ως αποτυχημένη εργασία.
Αυτό είναι σημαντικό επειδή οι ανεξέλεγκτες επαναλήψεις αποστολής μπορούν, σε ορισμένα σενάρια, να οδηγήσουν σε διπλά μηνύματα.
5. Broadcasting: Αλλαγές για το Mercure
Το Broadcasting επιτρέπει σε μια εφαρμογή να μεταδίδει γεγονότα προς συνδεδεμένους χρήστες.
Χρησιμοποιείται σε λειτουργίες όπως ζωντανές ειδοποιήσεις, συνομιλίες και ενημέρωση δεδομένων χωρίς ανανέωση της σελίδας.
Στο Laravel 13.36 αλλάζει η προεπιλεγμένη συμπεριφορά του Mercure broadcaster.
Τα γεγονότα που αποστέλλονται αποκλειστικά μέσω Mercure δημοσιεύονται πλέον συγχρονισμένα, αντί να τοποθετούνται αυτόματα σε Queue.
Για όσους θέλουν να διατηρήσουν την ασύγχρονη εκτέλεση, υπάρχει η επιλογή:
MERCURE_ASYNC=trueΗ αλλαγή είναι σημαντική για εφαρμογές που χρησιμοποιούν το Mercure σε παραγωγικό περιβάλλον, καθώς επηρεάζει τον τρόπο και τη χρονική στιγμή δημοσίευσης των γεγονότων.
6. Διορθώσεις αξιοπιστίας και ασφάλειας
Πέρα από τις νέες δυνατότητες, η έκδοση περιλαμβάνει αρκετές διορθώσεις.
Μεταξύ αυτών βρίσκονται η καλύτερη διαχείριση συνδέσεων Redis, η αντιμετώπιση σφαλμάτων επανασύνδεσης και διορθώσεις στη συμπεριφορά του Eloquent ORM.
Ιδιαίτερο ενδιαφέρον παρουσιάζει επίσης μια διόρθωση στον χειρισμό ειδικών χαρακτήρων μέσα σε Markdown emails.
Προηγουμένως, συγκεκριμένοι συνδυασμοί χαρακτήρων μπορούσαν να επηρεάσουν τον τρόπο ερμηνείας συνδέσμων που περιείχαν δεδομένα χρήστη.
Η νέα συμπεριφορά ενισχύει το escaping αυτών των δεδομένων, περιορίζοντας τη δυνατότητα αλλοίωσης του τελικού συνδέσμου.
Πρόκειται για μια αλλαγή που υπενθυμίζει πόσο σημαντική παραμένει η ασφαλής διαχείριση περιεχομένου ακόμη και σε φαινομενικά απλές λειτουργίες.
Τι σημαίνουν αυτές οι αλλαγές για έναν Laravel Developer;
Η αξία μιας ενημέρωσης δεν μετριέται αποκλειστικά από τον αριθμό των νέων δυνατοτήτων που προσθέτει.
Εξίσου σημαντική είναι η αντιμετώπιση προβλημάτων που δημιουργούν περιττή πολυπλοκότητα κατά την ανάπτυξη και τη συντήρηση εφαρμογών.
Στο Laravel 13.36, οι νέοι Validation Rule Builders κάνουν τον κώδικα πιο εκφραστικό και ευκολότερο στη συγγραφή.
Η υποστήριξη OLAP workloads βοηθά εφαρμογές που χρησιμοποιούν PlanetScale ή άλλες συμβατές εγκαταστάσεις Vitess.
Οι βελτιώσεις στους Queue Workers και στα queued mailables αντιμετωπίζουν προβλήματα που μπορεί να εμφανιστούν σε περιβάλλοντα παραγωγής.
Δεν πρόκειται για χαρακτηριστικά που αλλάζουν άμεσα την εμφάνιση μιας εφαρμογής. Επηρεάζουν όμως τον τρόπο λειτουργίας και συντήρησής της.
Πρέπει να αναβαθμίσουμε;
Για εφαρμογές που χρησιμοποιούν ήδη Laravel 13, οι αλλαγές αξίζουν αξιολόγηση, ιδιαίτερα εάν αξιοποιούνται Queues, read replicas ή Mercure.
Η έκδοση 13.36 δεν είναι πλέον η νεότερη της σειράς. Στις 16 Οκτωβρίου 2026 κυκλοφόρησε και η 13.37, επομένως πριν από οποιαδήποτε αναβάθμιση χρειάζεται έλεγχος της πιο πρόσφατης διαθέσιμης έκδοσης.
Κάθε αναβάθμιση σε παραγωγικό περιβάλλον πρέπει να συνοδεύεται από δοκιμές και έλεγχο συμβατότητας, ιδιαίτερα όταν επηρεάζεται η εκτέλεση εργασιών παρασκηνίου.
Συμπέρασμα
Το Laravel 13.36 αποτελεί χαρακτηριστικό παράδειγμα μιας ενημέρωσης που βελτιώνει το framework χωρίς να απαιτεί μεγάλες αλλαγές στον τρόπο ανάπτυξης εφαρμογών.
Πιο κατανοητοί κανόνες επικύρωσης, καλύτερη διαχείριση αναλυτικών ερωτημάτων και προσεκτικότερος χειρισμός εργασιών παρασκηνίου συνθέτουν μια ουσιαστική αναβάθμιση.
Η πραγματική πρόοδος ενός framework δεν βρίσκεται μόνο στις νέες λειτουργίες που προσθέτει, αλλά και στα προβλήματα που παύει να μεταφέρει στον προγραμματιστή.
Πηγές
SEO στοιχεία
SEO Title: Laravel 13.36: Τι αλλάζει σε Validation, Databases και Queues
Meta Description: Το Laravel 13.36 φέρνει νέα Validation Rule Builders, DB::olap() και βελτιώσεις στους Queue Workers. Δείτε τις αλλαγές με πρακτικά παραδείγματα.
URL Slug: laravel-13-36-new-features-validation-database-queues
Κατηγορία: Development / Frameworks











Φόρτωση σχολίων…