Gestire ed implementare le View

Ora analizzeremo nel tettaglio la struttura delle View. Ogni View è associata direttamente al suo Model di appartenenza e quindi alla sua pagina.

La struttura della View è:

header("Content-Type: text/html; charset=utf-8");
#header("Content-type: application/json");
$GLOBALS["Rgl"] = new $nameClass(
    array(
        "Crypto", // gestione Criptazione
        "Session", // gestione delle sessioni
        "Language", // gestione delle lingue
        "Avvisi", // gestore avvisi e alert
        "Str", // trattamento delle stringhe
        "DTime", // trattamento delle date
        "VerifySend", // verifica i dati in invio
        #"SendMail", // invia email in vari formati
        "DB", // gestione del DB in PDO comprende (MySql, SqLite, PostgreSql)
        #"MySql", // gestione del DB Mysql
        #"SqLite", // gestione del DB SqLite
        #"PgSql", // gestione del DB PstgreSql
        "BreadC", // gestione briciole di pane
        #"UploadFile", // Upload File & image
        "LogIn", // gestione Login
        #"Files", // gestione dei file fisici
        #"Restful" // request and response restful,
    )
);

class TestView extends TestModel {

    # gestione contenuto pagina ####
    function view_page(){
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'message'=>parent::test(),
                'benvenuto'=>'Regolo mini-framework',
            )
        );
    }
}
TestView::view_page();

Ora analizzeremo nel dettaglio la sua composizione:

header("Content-Type: text/html; charset=utf-8");
#header("Content-type: application/json");

Utilizzeremo un header specifico in base al fatto che la pagina genererà contenuto testuale (una pagina html ad esempio) oppure una risposta Json ad una specifica richiesta.

Ora analizzeremo in modo semplice la gestione dei Blocchi (che più volte sono stati nominati):

$GLOBALS["Rgl"] = new $nameClass(
    array(
        "Crypto", // gestione Criptazione
        "Session", // gestione delle sessioni
        "Language", // gestione delle lingue
        "Avvisi", // gestore avvisi e alert
        "Str", // trattamento delle stringhe
        "DTime", // trattamento delle date
        "VerifySend", // verifica i dati in invio
        #"SendMail", // invia email in vari formati
        "DB", // gestione del DB in PDO comprende (MySql, SqLite, PostgreSql)
        #"MySql", // gestione del DB Mysql
        #"SqLite", // gestione del DB SqLite
        #"PgSql", // gestione del DB PstgreSql
        "BreadC", // gestione briciole di pane
        #"UploadFile", // Upload File & image
        "LogIn", // gestione Login
        #"Files", // gestione dei file fisici
        #"Restful" // request and response restful,
    )
);

Cosa sono i blocchi? Semplicemente delle classi/ librerie/ blocchi di codice (chiamateli come meglio credete) che ci aiuteranno nella scrittura del nostro applicativo. In questa sezione attiveremo o disattiveremo i blocchi che potrebbero tornarci utili.

Note: alcuni blocchi hanno delle dipendenze e devono essere utilizzati tramite lo sblocco dei blocchi genitori, altrimenti verrà generato un'eccezione. Analizzeremo meglio la questione all'interno della sezione specifica.

Durante la creazione di una pagina tramite (Admin-rgl) le View avranno in dotazione già i blocchi esistenti ed alcuni di essi saranno "sbloccati" di default.

Ora vedremo la sezione relativa alla stampa a video dei dati.

Nella sezione Model, abbiamo creato una funzione che ora andremo ad utilizzare richiamandola semplicemente tramite l'attributo parent::

Ma come sempre, la visualizzazione del codice ci verrà in aiuto:

class TestView extends TestModel {

    # gestione contenuto pagina ####
    function view_page(){
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'message'=>parent::test(),
                'benvenuto'=>'Regolo mini-framework',
            )
        );
    }
}

La voce  parent::test() richiama automaticamente le funzioni del model in quanto estesa dalla classe:

class TestView extends TestModel {

 

L'ultima, ma non meno importante riga è l'inizializzazione della stampa tramite:

TestView::view_page();

 


« I Model 

I Templates »