⊗ppMVDFmMdP 35 of 35 menu

Implementazione del genitore di tutti i modelli

Implementiamo la classe genitore di tutti i modelli:

<?php namespace Core; class Model { private $link; public function __construct() { $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query($this->link, "SET NAMES 'utf8'"); } protected function findOne($query) { // qui ci sarà del codice } protected function findMany($query) { // qui ci sarà del codice } } ?>

Come puoi vedere, nel costruttore della classe effettuiamo la connessione al database. C'è, tuttavia, un problema: ogni modello creato (se all'interno di una singola azione del controller ci sono più modelli) effettuerà la propria connessione al database, e questo non è ottimale.

Facciamo in modo che la connessione al database venga creata solo per il primo modello creato, e che i modelli successivi utilizzino la connessione già creata. Per fare ciò, rendiamo la proprietà link statica:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // se la proprietà non è impostata, ci connettiamo self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query(self::$link, "SET NAMES 'utf8'"); } } protected function findOne($query) { } protected function findMany($query) { } } ?>

Copia il codice della classe Model fornito e posizionalo nel file /core/Model.php.

Implementa il metodo findOne in questa classe. Verifica il suo funzionamento.

Implementa il metodo findMany in questa classe. Verifica il suo funzionamento.

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