PHP Ανάπτυξη. Symfony Console Component - Συμβουλές και κόλπα
Αυτό το άρθρο δημιουργήθηκε με σκοπό να σας δείξει τις πιο χρήσιμες και ανακτήσιμες συμβουλές και κόλπα σχετικά με την ανάπτυξη της κονσόλας Symfony.

Έχουν γραφτεί περισσότερα από ένα άρθρα για τα λάθη που γίνονται κατά τη διαδικασία εκτέλεσης ενός έργου, αλλά σπάνια εξετάζονται οι απαιτήσεις του έργου και η διαχείριση των κινδύνων δεδομένης της επιλεγμένης τεχνολογίας.
PHP, όπως και άλλες γλώσσες, έχει κάποια μειονεκτήματα που δεν αξίζουν τίποτα όταν πρόκειται για τη διαχείριση ενός IT έργο όπου PHP είναι η κύρια γλώσσα.
Παρακάτω θα βρείτε μια λίστα με αυτά, μαζί με συμβουλές για το πώς να τα αποφύγετε.
PHP θεωρείται "εύκολη γλώσσα" επειδή έχει πολύ χαμηλό εμπόδιο εισόδου. Αυτό έχει ως αποτέλεσμα μια μεγάλη διαφορά στα πρότυπα κωδικοποίησης και στον τρόπο με τον οποίο οι παγκόσμιες διεπαφές υλοποιούνται σε διάφορες εξωτερικές βιβλιοθήκες. Σε μια προσπάθεια να μπει τάξη, εισήχθη ένα σύνολο προτύπων. Αυτά περιγράφουν ένα σύνολο τρόπων με τους οποίους ο προγραμματιστής της υλοποίησης μπορεί να ικανοποιήσει οποιοδήποτε σύνολο περιορισμών που απαιτούνται από το πρότυπο. Ένα απλό παράδειγμα για Διανομέας συμβάντων:
Ακροατής - Ένας ακροατής είναι κάθε PHP callable που περιμένει να του περάσει ένα Event. Το ίδιο συμβάν μπορεί να περάσει σε μηδέν ή περισσότερους ακροατές. Ένας ακροατής ΜΠΟΡΕΙ να αναβάλει κάποια άλλη ασύγχρονη συμπεριφορά αν το επιλέξει.
Με τη χρήση αυτού του προτύπου κάθε προγραμματιστής που χρησιμοποιεί την ονοματολογία PSR-compiant μπορεί εύκολα όχι μόνο να επικοινωνεί αλλά και να κωδικός με άλλους προγραμματιστές.
Εφαρμογή αυτών των προτύπων στην πράξη, για παράδειγμα με τη χρήση PHP Ο σωστός τρόπος κατευθυντήριες γραμμές και βιβλιοθήκες που υποστηρίζουν παγκόσμιες διεπαφές PSR, επιτρέπει PHP προγραμματιστές να προσαρμόζονται ταχύτερα στις αλλαγές των λειτουργικών, αρχιτεκτονικών και υποδομικών απαιτήσεων.
Ως συντηρητής της βάσης κώδικα να θυμάστε πάντα να χρησιμοποιείτε δοκιμασμένες και σταθερές εκδόσεις εξωτερικών βιβλιοθηκών και αν είστε αναγκασμένοι να χρησιμοποιήσετε λύση βασισμένη στο χρήστη, να την υλοποιείτε χρησιμοποιώντας PSR PHP.
Ο κατάλογος όλων των διαθέσιμων προτύπων είναι διαθέσιμος στον κεντρικό δικτυακό τόπο PHP-FIG. Τα εκτεταμένα πρότυπα με πρακτικές περιγραφές είναι διαθέσιμα σε διάφορες μορφές από το PHP Ο σωστός τρόπος αρχική σελίδα.
Οι καλύτερες βιβλιοθήκες που συμμορφώνονται με τα πρότυπα PHP-FIG παρατίθενται στην ενότητα Πρωτάθλημα PHP ιστοσελίδα.
Σε έργα που χρησιμοποιούν διαχειριστή εξαρτήσεων Συνθέτης υπάρχει συχνά μια κατάσταση κατά την οποία μετά από μια μακρά περίοδο υποστήριξης και συντήρησης του προϊόν στο περιβάλλον παραγωγής, υπάρχει η ανάγκη να εφαρμοστούν λειτουργικές αλλαγές χωρίς να ανακατασκευαστεί ολόκληρη η αρχιτεκτονική. Τις περισσότερες φορές το έργο αναλαμβάνεται στη συνέχεια από έναν προγραμματιστή, έργο του οποίου είναι να ξεκινήσει το τοπικό περιβάλλον ανάπτυξης και να αρχίσει να εργάζεται πάνω σε εισιτήρια. Με βάση το composer.lock
αρχείο, ο προγραμματιστής είναι σε θέση να επαναφέρει το έργο στην κατάσταση στην οποία βρισκόταν στο περιβάλλον παραγωγής, αλλά οποιαδήποτε αλλαγή στο αρχείο composer.json
αρχείο, π.χ. προσθέτοντας τη βιβλιοθήκη, θα προκαλέσει μια σειρά από λάθη που θα αυξήσουν τον πραγματικό χρόνο υλοποίησης ενός νέου ομάδα μέλους στον οργανισμό, καθώς και ο χρόνος ανάπτυξης της λύσης.
Μόλις η εφαρμογή είναι σταθερή, ο συντηρητής του κώδικα θα πρέπει να κλειδώσει τις εκδόσεις των βιβλιοθηκών στο composer.json
αρχείο και να δημιουργήσετε μια σαφή διαδικασία που περιγράφει τον τρόπο αναβάθμισης των εκδόσεών τους, αν χρειαστεί στο μέλλον.
Εξετάστε επίσης τη λειτουργία ενός μηχανισμού για τον έλεγχο της κατάστασης ασφαλείας των χρησιμοποιούμενων βιβλιοθηκών και την αυτοματοποίηση της διαδικασίας παροχής ενημερώσεων ασφαλείας.
Χρησιμοποιώντας δωρεάν εργαλεία όπως Dependabot, μπορούμε τόσο να διατηρήσουμε μια συνεπή, διαχειρίσιμη υποδομή έκδοσης για τις εξαρτημένες βιβλιοθήκες όσο και να παρέχουμε μια εγγύηση ασφάλειας για την εφαρμογή μας.
> Είναι απλά ένα CRUD, γιατί να ασχοληθούμε;
> Υπάρχει μια βιβλιοθήκη που κάνει ακριβώς αυτό!
Στο PHP τομέα, είναι εύκολο να πέσει κανείς στη δίνη της λήθης κατά την υλοποίηση της επιχειρηματικής λογικής του προϊόντος. Με την πάροδο των ετών έχουν υπάρξει εκατοντάδες έργα που [δημιουργούν διαχειριστικούς πίνακες για τη διαχείριση μοντέλων δεδομένων](https://backpackforlaravel.com/), [δημιουργούν προβολές που μοιάζουν με τις προβολές του Google Analytics](https://github.com/Kunstmaan/KunstmaanDashboardBundle) ή [λύνουν τα προβλήματα ασύγχρονης λειτουργίας του PHP](https://laravel.com/docs/9.x/octane) με το άγγιγμα ενός μαγικού ραβδιού (εντάξει, με ένα μόνο ερώτημα στη γραμμή εντολών).
Ο κόσμος του PHP είναι γεμάτος από έτοιμες υλοποιήσεις που λειτουργούν στο 99,9% του χρόνου.
Αυτό το 0.1% είναι το σημείο όπου η επιχειρησιακή λογική συγκρούεται με τους λειτουργικούς περιορισμούς των χρησιμοποιούμενων βιβλιοθηκών.
Αυτές οι λεγόμενες "προσθήκες" είναι οι πιο δύσκολες στην εφαρμογή τους στο τέλος του έργου.
Δεν υπάρχει καμία πιθανότητα να βρεθεί η χρυσή τομή μεταξύ της υπερ-μηχανικής και της υπο-μηχανικής χωρίς την κατάλληλη κατανόηση του επιχειρηματικού τομέα του προϊόντος.
Ξεκινώντας ομάδα ανάπτυξης μέλη νωρίς στη φάση του προϊόντος και να είστε προληπτικοί, ενώ συνεργάζεστε με τον ιδιοκτήτη του προϊόντος, μπορείτε να ελαχιστοποιήσετε τον κίνδυνο του προβλήματος της χρήσης μιας λύσης που δεν θα λειτουργήσει ως μακροπρόθεσμη επένδυση.
PHP δεν είναι τέλειο, αυτό είναι σίγουρο. Οι ελλείψεις της όσον αφορά τη στατική τυποποίηση, την έλλειψη υποστήριξης γενικής χρήσης και τη συνεχή υποστήριξη αρχαϊκών μεθόδων αποτελούν ακόμα πηγή αστεϊσμού μεταξύ των προγραμματιστών. Ωστόσο, εδώ και αρκετό καιρό PHP προγραμματιστές έχουν αποκτήσει όλο και πιο ισχυρά εργαλεία, όπως PHPStan, Xdebug, PHP-CS-Fixer που τους επιτρέπουν να διατηρούν συνέπεια και στατική τυποποίηση - αποφεύγοντας έτσι πολλά σφάλματα. Παρόλα αυτά, πολύ λίγη προσοχή δίνεται στις δοκιμές και αυτές, όταν υλοποιούνται σωστά, οδηγούν σε μια γρήγορη απόδοση της επένδυσης με τη μορφή
- μείωση των σφαλμάτων παλινδρόμησης
- αυξημένη επίγνωση των δυνατοτήτων του προϊόντος
- αύξηση της αίσθησης ιδιοκτησίας του κώδικα από τους προγραμματιστές
Μην περικόπτετε το κόστος των δοκιμών. Η συγγραφή απλών σεναρίων Behat δεν είναι πραγματικά τόσο δύσκολη, δεν χρειάζεται να γράψετε αμέσως πολύπλοκες δοκιμές από άκρο σε άκρο ή να μπείτε σε λεπτομέρειες υλοποίησης και να δοκιμάσετε κάθε μέθοδο.
Μια απλή δοκιμή Behat που περιγράφεται σε φυσική γλώσσα τομέα συχνά αξίζει περισσότερο από την πιο σχολαστικά γραμμένη δοκιμή από άκρο σε άκρο.
Το Γλώσσα PHP και τα δύο πιο ισχυρά της πλαίσια Laravel και Symfony είναι πλήρως κατάλληλες για τη δημιουργία μιας σύγχρονης, λειτουργικής και κυρίως υψηλής απόδοσης αρχιτεκτονικής. Η υποστήριξη για διάφορα συστήματα ουρών αναμονής μηνυμάτων και η ολοένα και ταχύτερη PHP οι βελτιώσεις των επιδόσεων από έκδοση σε έκδοση μας επιτρέπουν να δημιουργούμε εύκολα μικρουπηρεσίες που βασίζονται σε μικροπλαίσια. Ως επί το πλείστον, ωστόσο, εξακολουθούμε να βασιζόμαστε σε μονολιθικά συστήματα. Δεν υπάρχει τίποτα κακό σε αυτό, αλλά όταν εξετάζουμε την ανάπτυξη τέτοιων συστημάτων πρέπει να δίνουμε μεγάλη προσοχή στα όρια του τομέα και να καθορίζουμε το σημείο διασύνδεσης μεταξύ των νέων λύσεων και των παλαιότερων τμημάτων του συστήματος.
Κατά την ανάπτυξη οποιουδήποτε PHP ιστοσελίδα, αξίζει να εξετάσετε προσεκτικά τις τρέχουσες λύσεις, να δημιουργήσετε παγκόσμιες διεπαφές για την επικοινωνία δεδομένων και να εφαρμόσετε νέες λειτουργίες χρησιμοποιώντας τις τελευταίες τεχνικές και πρακτικές. Μια από τις πιο δημοφιλείς λύσεις που χρησιμοποιούνται στην πράξη είναι Μοτίβο στραγγαλιστή.