⊗ppOpNsAu 105 of 107 menu

Αυτόματη φόρτωση κλάσεων στην OOP στην PHP

Γνωρίζετε ήδη ότι για να χρησιμοποιήσετε μια κλάση, πρέπει να την συμπεριλάβετε μέσω του require. Όταν ένα project έχει πολλές κλάσεις, προκύπτουν πολλές εντολές συμπερίληψης, οι οποίες είναι πολύ άβολο να γράφονται και δύσκολο να ελεγχθούν.

Για την επίλυση αυτού του προβλήματος, προστέθηκε στην PHP η αυτόματη φόρτωση κλάσεων. Η αυτόματη φόρτωση επιτρέπει στην PHP να φορτώνει αυτόματα το αρχείο μιας κλάσης κατά την προσπάθεια πρόσβασης σε αυτήν την κλάση στον κώδικα. Ωστόσο, οι κλάσεις δεν θα φορτώνονται απλώς - πρέπει να τοποθετηθούν σε φακέλους του site με έναν ειδικό τρόπο, ακολουθώντας κάποια συμφωνία για τα ονόματα αρχείων και φακέλων των κλάσεων. Μπορείτε να χρησιμοποιήσετε την ενσωματωμένη στην PHP συμφωνία, ή να επινοήσετε τη δική σας και να τη χρησιμοποιήσετε.

Ας εξετάσουμε πρώτα την τυπική συμφωνία της PHP. Αυτή η συμφωνία συνίσταται στο ότι αν έχουμε ένα αρχείο με μια κλάση, τότε η διαδρομή μέσω των φακέλων του site προς αυτό το αρχείο πρέπει να συμπίπτει με τον χώρο ονομάτων του αρχείου, και το όνομα του αρχείου πρέπει να συμπίπτει με το όνομα της κλάσης που περιέχεται σε αυτό. Σε αυτήν την περίπτωση, τα ονόματα των φακέλων και του αρχείου πρέπει να είναι σε πεζά γράμματα.

Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση:

<?php namespace Core\Admin; class PageController { } ?>

Σύμφωνα με τη συμφωνία, αυτή η κλάση πρέπει να βρίσκεται στον φάκελο /core/admin/ στο αρχείο pagecontroller.php.

Ας χρησιμοποιήσουμε τώρα στο αρχείο index.php την κλάση μας, χωρίς να την συμπεριλάβουμε μέσω require, αλλά χρησιμοποιώντας την αυτόματη φόρτωση. Για αυτό, στην αρχή του αρχείου, στο οποίο καλούνται οι κλάσεις, πρέπει να καλέσετε τη συνάρτηση spl_autoload_register. Ας το κάνουμε:

<?php spl_autoload_register(); // ενεργοποιούμε την αυτόματη φόρτωση $obj = new Core\Admin\PageController; // δημιουργούμε ήρεμα ένα αντικείμενο ?>

Στο αρχείο index.php ενεργοποιήστε την αυτόματη φόρτωση κλάσεων. Ακολουθώντας τη συμφωνία για τα ονόματα φακέλων και αρχείων δημιουργήστε την κλάση Core\User, την κλάση Core\Admin\Controller και την κλάση Project\User\Data. Στο αρχείο index.php δημιουργήστε αντικείμενα αυτών των κλάσεων.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη