⊗ppOpNsAu 105 of 107 menu

Autocaricamento delle classi in OOP in PHP

Sapete già che per utilizzare una classe, dobbiamo includerla tramite require. Quando in un progetto ci sono moltissime classi, si ottengono molti include, che sono molto scomodi da scrivere e difficili da controllare.

Per risolvere questo problema in PHP è stato aggiunto l'autocaricamento delle classi. L'autocaricamento permette a PHP di caricare automaticamente il file con la classe al tentativo di accesso a quella classe nel codice. Tuttavia, le classi non si caricheranno da sole - è necessario posizionarle nelle cartelle del sito in modo speciale, seguendo una qualche convenzione sui nomi dei file e delle cartelle delle classi. Si può utilizzare la convenzione integrata in PHP, oppure inventarne una propria e utilizzarla.

Per cominciare, esaminiamo la convenzione standard di PHP. Questa convenzione consiste nel fatto che se abbiamo un file con una classe, allora il percorso nelle cartelle del sito verso questo file deve coincidere con lo spazio dei nomi del file, e il nome del file deve coincidere con il nome della classe in esso contenuta. Inoltre, i nomi delle cartelle e del file devono essere in minuscolo.

Vediamo un esempio. Supponiamo di avere la seguente classe:

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

Secondo la convenzione, questa classe dovrebbe trovarsi nella cartella /core/admin/ nel file pagecontroller.php.

Ora nel file index.php utilizziamo la nostra classe, senza includerla tramite require, ma utilizzando l'autocaricamento. Per fare ciò, all'inizio del file in cui vengono chiamate le classi, si deve chiamare la funzione spl_autoload_register. Facciamolo:

<?php spl_autoload_register(); // attiviamo l'autocaricamento $obj = new Core\Admin\PageController; // creiamo l'oggetto tranquillamente ?>

Nel file index.php attiva il caricamento automatico delle classi. Seguendo la convenzione sui nomi delle cartelle e dei file, crea la classe Core\User, la classe Core\Admin\Controller e la classe Project\User\Data. Nel file index.php crea oggetti di queste classi.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta