Crea sito

Tutorial – Un Blog in php: Parte 7

Ciao a tutti! Settima e ultima parte del tutorial su come creare un blog in php usando il php-easyMVC framework, dopo questo tutorial dovreste essere in grado, di proseguire il lavoro per conto vostro, oppure di realizzare un nuovo progetto utilizzando questo framework.

Prossimamente pubblicherò una serie di appendici a questo tutorial che raccoglieranno le risposte ad alcune delle domande che mi avete posto e che mi sono sembrate più rilevanti, tra cui guide su come ad esempio:

  • utilizzare jquery con il framework, e come creare callback ajax all’interno di php-easyMVC
  • come integrare l’ormai diffusissimo framework bootstrap col framework
  • come utilizzare il sistema di localizzazione integrato nella versione 0.2 di php-easyMVC per creare applicazioni web o siti multi-lingua
  • come creare un sistema di autenticazione dell’utente con php-easyMVC

e altro… (man mano che mi fate domande mi viene l’ispirazione 🙂 )

Ma veniamo a noi…

Dove eravamo rimasti?

Nella parte 6 del tutorial, avevamo implementato tutto il sistema di commenti di un post: un utente, compilando un piccolo form, in cui veniva richiesto il suo nick e del testo, poteva commentare un post. Ciò che ci rimane da fare è permettere la scrittura di un post,

la procedura sarà molto simile a quella utilizzata per i commenti, dovremo:

  • predisporre un link nella nostra homepage, per inserire un nuovo post
  • preparare una vista, che ospiterà il form di creazione del nostro post
  • creare un controller (o predisporne uno esistente) che faccia da “ponte” tra vista e modello
  • completare il nostro modello: models/blog.class.php implementando il metodo save_posts

iniziamo!

Il Link nella Home

Dobbiamo innanzi tutto predisporre un link per collegarci al nuovo form, si tratta di aggiungere qualche riga di html alla nostra vista:

apriamo il file: views/index.php (il file dove abbiamo scritto il codice per visualizzare l’elenco dei post). aggiungiamo il seguente codice PRIMA del tag “ul” che ospita l’elenco dei post

<!-- Barra contenente link vari -->
<div class="navbar">
<ul class="nav">
<li><a href="index.php?rt=post/new_post">New Post <span>+</span></a></li>
</ul>
</div>

ed ecco le aggiunte da fare al foglio di stile (styles/main.css), come al solito, non sono un grafico, per cui non affidatevi totalmente ai miei fogli di stile, personalizzatevi, sicuramente otterrete qualcosa di meglio rispetto a quello che faccio io 🙂 :

div.navbar{
width: 100%;
margin-top: 20px;
margin-bottom: 20px;
/* CSS3 Only: IE 9+*/
-webkit-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: 10px 10px 50px 2px #CCC;
box-shadow: 10px 10px 50px 2px #CCC;
}

div.navbar ul.nav{
padding: 0;
list-style: none;
}

div.navbar ul.nav li{
display: inline-block;
height: 30px;
border-right: 1px solid #CCC;
padding-top: 10px;
}

div.navbar ul.nav li:hover{
background: #EEE;
}

div.navbar ul.nav li a{
display: block;
height: 100%;
padding-left: 5px;
padding-right: 5px;
}

come potete vedere ho già impostato l’href del link per chiamare il postController, infatti visto che dobbiamo inserire un nuovo post, ha logicamente senso utilizzare il postController che abbiamo creato in precedenza (sempre di post si tratta!), è inutile crearne uno nuovo, sarà sufficiente utilizzare una action diversa da index (new_post nel nostro caso) che invece di richiamare la vista di un post, chiamerà la vista adatta a crearne uno, vediamo come fare.

Il Controller fa da ponte

apriamo il file: controller/postController.php

e in fondo al file creiamo un nuovo metodo: new_post che si occuperà di chiamare una vista diversa da quella di default del controller:

public function new_post(){
/* Show the view */
$this->registry->template->show('new_post');
}

come vedete il metodo è semplicissimo, comunica semplicemente al templateEngine di mostrare la vista denominata new_post

a questo punto non ci resta che creare la nuova vista, in cui inserire l’editor del post.

La Vista

Creiamo il file views/new_post.php e all’interno di questo file predisponiamo un form come segue:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="styles/main.css" type="text/css" />
<title>myBlog - Post Editor</title>
</head>
<body>
<h1>Post Editor</h1>
<hr/>
<br/>
<form action="index.php?rt=post/add_post" method="POST">
<div>
<label for="post_title">Titolo del post<span style="color:red;">*</span> :</label>
<br/>
<input class="add_post" id="post_title" name="post_title" type="text" placeholder="Titolo"></input>
</div>
<div>
<label for="post_author">Il Tuo Nome<span style="color:red;">*</span> :</label>
<br/>
<input class="add_post" id="post_author" name="post_author" type="text" placeholder="Autore"></input>
</div>
<div>
<label for="post_description">Descrizione :</label>
<br/>
<input class="add_post" id="post_description" name="post_description" type="text" placeholder="Descrizione"></input>
</div>
<div>
<label for="post_content">Post<span style="color:red;">*</span> :</label>
<br/>
<textarea class="add_post" id="post_content" name="post_content" style="resize:none;" placeholder="Scrivi qua il post..."></textarea>
</div>
<br/>
<input class="float:right;" type="submit" value="Inserisci Post + "></input>
</form>
<br/>
<hr/>
<h6 style="color:red">I campi marcati da un '*' sono obbligatori</h6>
</body>
</html>

aggiungendo al foglio di stile le seguenti due classi:

input.add_post{
border:1px solid #CCC;
width:600px;
height: 20px;
padding-left: 10px;
}
textarea.add_post{
border:1px solid #CCC;
width:600px;
height: 200px;
padding: 5px;
}

il risultato dovrebbe essere più o meno il seguente:

Aggiungi Post

come potete vedere, la action del form richiama nuovamente il postController chiamando un metodo add_post, che dobbiamo ancora scrivere, e che si occuperà di chiamare il metodo save_post del modello e di reindirizzare l’utente, ad inserimento avvenuto, verso la lista dei post nella home page.

torniamo dunque al nostro controller/postController.php e in fondo al file aggiungiamo il seguente metodo:

/* Salvo il post ricevuto tramite il form e reindirizzo all'homepage */
public function add_post(){
/* Controlla la presenza di tutti i campi obbligatori */
if(!isset($_POST['post_title']) || $_POST['post_title'] == "" || !isset($_POST['post_author']) || $_POST['post_author'] == "" || !isset($_POST['post_content']) || $_POST['post_content'] == ""){
$this->new_post();
return;
}
/* Istanzia il modello e salva il post*/
$blog = new Blog($this->registry->db);
$blog->save_post($_POST);
/* Reindirizza all'index */
header("Location:index.php");
}

il codice si commenta da solo: viene verificato il contenuto di tutti i campi obbligatori, viene istanziato il modello del blog e richiamato il metodo di salvataggio, che adesso dobbiamo implementare. A lavoro completato l’utente viene rispedito alla homepage, dove se tutto è andato per il verso giusto dovrebbe vedere il nuovo post in cima alla lista.

Il Modello

Apriamo il file models/blog.class.php e cerchiamo il metodo save_post che avevamo già predisposto nelle prime parti del tutorial: cosa dovremo fare? Semplicemente una query di inserimento! vediamo come:

/* Salva un nuovo post nel database, utilizzando i dati provenienti da un form */
public function save_post($form_post_data){
$this->dbms->connect();
$today = date('Y-m-d'); /* Ottengo la data odierna */
if(isset($form_post_data['post_description']) && $form_post_data['post_description'] != ""){
$query = "INSERT INTO posts(title,description,author,post_date,content) VALUES(\"".$form_post_data['post_title']."\",\"".mysql_real_escape_string($form_post_data['post_description'])."\",\"".$form_post_data['post_author']."\",\"".$today."\",\"".mysql_real_escape_string($form_post_data['post_content'])."\");";
}
else{
$query = "INSERT INTO posts(title,author,post_date,content) VALUES(\"".$form_post_data['post_title']."\",\"".$form_post_data['post_author']."\",\"".$today."\",\"".mysql_real_escape_string($form_post_data['post_content'])."\");";
}
$this->dbms->prepare($query);
$this->dbms->query();
print($query);
$this->dbms->disconnect();
}

come potete vedere si tratta di effettuare una semplice query sul database, vi faccio notare solo un paio di cose:

  1. l’if-else serve per distinguere il caso in cui è stata fornita o meno una descrizione del post, se non è stata fornita, la query non la deve inserire, infatti abbiamo predisposto il dbms  per impostare di default quel campo a NULL
  2. per come abbiamo predisposto il database, dobbiamo generare la data di inserimento via php, questa cosa sarebbe stata diversa se avessimo scelto di usare come tipo: TIMESTAMP e avessimo impostato DEFAULT CURRENT_TIMESTAMP sul campo post_date nel db

A questo punto dopo un inserimento vi si dovrebbe aggiungere il post nella pagina principale:

Blog Completo

Abbiamo completato il nostro blog! Ora abbiamo la possibilità di visualizzare l’elenco dei post, di visualizzarli nei dettagli uno alla volta, di commentarli e di crearne di nuovi. Ovviamente non vi devo certo dire, che il prodotto è ben lontano dall’essere completo e utilizzabile, spero solo di essere riuscito a farvi comprendere meglio come funziona il framework, e di avervi fornito gli strumenti di base per sviluppare i vostri prodotti.

Vi ricordo di buttare un occhio di tanto in tanto al NerdAngolo, per quelle appendici riguardo l’integrazione di funzionalità esterne a php-easyMVC!

Mi raccomando commentate per dubbi, domande, critiche, complimenti o qualsiasi tipo di questione!

A Presto!

 <- Parte 6: Commenti

16 Responses to Tutorial – Un Blog in php: Parte 7

  1. andrea ottobre 28, 2013 at 3:34 pm #

    Ciao, ancora una volta complimenti.
    Ti volevo porre 2 domande:
    1) E’ possibile utilizzare il mod-rewrite ad esempio per il dettaglio del post?
    2) E’ possibile usare lo stesso core sia per la parte front-end e che per la parte di admin?

    Grazie tante per la risposta

    • Jacopo novembre 12, 2013 at 11:30 pm #

      Ciao Andrea, scusami, ma mi era sfuggito il tuo commento, ti rispondo al volo.

      1) Non ho mai provato, ma penso non ci siano controindicazioni nell’usare mod_rewrite col framework, aggiungi semplicemente il file .htaccess con le regole per la riscrittura dell’url nella root del tuo sito e dovrebbe andare, ovviamente sempre che il modulo sia abilitato in apache!

      2) Sì anche a questa domanda, puoi usare lo stesso core sia per backend che per frontend, si tratta di usare semplicemente controllers e viste dedicate alle due parti del sito e pensare a una politica di autenticazione degli utenti adatta allo scopo. In alternativa, puoi semplicemente separare le due parti installando il framework una prima volta, all’interno della root del framework crei una cartella Administrator e al suo interno scompattare un altra volta il framework.
      In questo modo tieni completamente separati frontend a cui accederai con http://nomesito.blablabla e backend a cui accederai con http://nomesito.blablabla/Administrator, che un po’ quello che fai ad esempio (se lo conosci) col CMS joomla.

      A Presto!

  2. Giorgio novembre 12, 2013 at 4:10 pm #

    Ciao Jacopo. Ottimo tutorial, letto tutto d’un fiato. Se fosse scritto in inglese avresti almeno 50 commenti per ogni sezione!

    Mi piacerebbe definire un nuovo modello di accesso al database che faccia utilizzo della libreria PDO. Questo svincolerebbe dall’utilizzo di funzioni come “mysql_real_escape_string” che purtroppo sono deprecate dalla community di PHP.

    Proverò inoltre ad estendere il controller in modo da poter modificare e cancellare i post. A lavoro finito, mi piacerebbe inviarti uno zip per avere un tuo parere.

    Attendo tue news, a presto!

    • Jacopo novembre 12, 2013 at 11:09 pm #

      Ciao Giorgio ti ringrazio per i complimenti…

      per quanto riguarda la libreria PDO, è un ottima idea, come ho già spiegato anche ad altri,
      io quando ho scritto il framework, ho implementato al volo il driver mysql come “esempio” di implementazione della classe astratta db.class.php.

      In realtà incoraggio volentieri lo sviluppo di driver per diversi DBMS adatti alle proprie esigenze e decisamente più sicuri in ambienti di produzione.
      Se vuoi mandarmi lo zip. non c’è problema, puoi mandarmelo all’indirizzo: [email protected]

      Abbi solo un po’ di pazienza se non riesco a risponderti subito perché in questo periodo sono un po’ preso e faccio fatica a stare dietro al blog. Però non ti preoccupare, ti garantisco che prima o poi controllo tutto ciò che mi arriva 😉

  3. m4s0 novembre 21, 2013 at 2:38 pm #

    Ciao Jacopo, complimenti per il tutorial e per il framework davvero utile e interessante.

    Ti vorrei chiedere se è possibile che tu mi spiegassi in modo semplice il funzionamento del MVC (Model View Controller) e come funziona ed è implementato nel tuo framework cioè l’interazione tra i file e le variabili.
    Magari con un’esempio.

    Grazie mille e complimenti ancora, avanti cosi!

    • Jacopo novembre 22, 2013 at 9:13 am #

      Ciao Marco, grazie per i complimenti!

      Allora per quanto riguarda l’MVC in generale si tratta di un “pattern di programmazione”, possiamo impropriamente chiamarlo “stile o tecnica di programmazione”, che permette di mantenere il codice che scrivi ordinato, modulare, e di facile aggiornamento… il concetto è quello di separare il programma, o nel caso del framework, il sito internet o la webapp, in “moduli” diversificati per la loro funzionalità: avremmo moduli dedicati all’interazione con i dati nel database, il parsing di file xml, la gestione fisica dei file uploadati, la conversione di video ecc… questi moduli costituiscono i “Modelli” del nostro pattern… si tratta di una parte invisibile all’utente finale dell’applicazione, ma che si occupa, in parole povere di svolgere tutti i lavori sporchi. Poi abbiamo le “Viste” ovvero l’insieme di tutte le pagine o tutte le schermate, che presentiamo all’utente finale, e con le quali l’utente può interagire, (da qui tipicamente estraiamo i dati su cui poi lavorerà il modello), infine abbiamo “i controller” (considera i controller come dei ponti verso i modelli e viceversa).
      Per maggiori info su come funziona il pattern MVC dai un occhiata alla pagina di wikipedia o all’articolo introduttivo al framework su questo blog.

      Veniamo ora all’altra domanda, come è implementato l’MVC nel framework?
      La domanda è abbastanza tecnica e sicuramente non sarò precisissimo nella risposta, in realtà nel tempo libero sto cercando di preparare una documentazione ufficiale al framework, che risponderà meglio anche a questa domanda… comunque cerco di darti una risposta:

      Senza perderci nelle funzionalità di contorno, il framework è costituito da 3 parti principali:

      – Il router (application/router.class.php)
      – Il registry (application/registry.class.php)
      – Il template (application/template.class.php)

      Il router è probabilmente la parte più importante del framework, in buona sostanza, il suo scopo è leggere dall’URL qual’è la pagina, o l’azione richiesta dall’utente e caricare il controller adatto (ovvero fa il “routing” della richiesta).
      Come fa?
      Il framework ha un unico punto di ingresso, il file index.php che trovi nella root del sistema, per cui tutti gli url incominciano con index.php, in $_GET viene passata una variabile rt (acronimo di router), che avrà settato come valore il nome del router da chiamare “/” il nome della action da eseguire, la chiamata tipo è la seguente:


      index.php?rt=routerName/action

      convenzionalmente se nessun controller è specificato in rt allora viene chiamato indexController di default, stessa cosa per le action, di default viene chiamata l’action index.

      Come è fatto un controller?
      tutti i controller devono estendere (application/baseController.php) una classe astratta che obbliga, sostanzialmente obbliga a organizzare in un certo modo il controller, ovvero con almeno un metodo index, e implementando ogni action come metodo del controller che sto chiamando.

      Il secondo elemento importante è il registry:

      Pensalo semplicemente come un array, con visibilità globale su tutto il framework, che ospita variabili globali.

      Ti faccio un esempio, quando il framework istanzia il modello del database, questo viene salvato in $registry->db, questo ti permette di accedere al database da qualsiasi altra parte del framework semplicemente riferendoti a $registry.

      Il terzo elemento importante è il template.

      Si tratta di una classe abbastanza semplice, sostanzialmente fornisce il metodo show(‘nomeVista’), che se la trova nella cartella views, include il file php della vista specificato in argomento. Inoltre possiede un suo registro di variabili, accessibili solo all’interno della vista visualizzata, ovvero quando vuoi passare una variabile da un controller a una vista ti basta settare il suo nome nella vista in questa maniera:
      $registry->template->nomevariabile = “valore”, e questa sarà accessibile alla vista con $nomevariabile.

      Così in buona sostanza sono implementati viste e controller nel framework,

      per quanto riguarda i modelli, troverai un file (includes/init.php) nella root del framework che sostanzialmente, in primis include tutti i file in application, che fanno andare l’intero meccanismo, dopo di che implementa il metodo __autoload, in maniera tale da andare a vedere quali sono i file presenti nella cartella models, e li include, in modo che questi siano disponibili per essere istanziati nei vari controller.

      Purtroppo in un commento, non posso essere precisissimo, se hai domande particolari o qualche dubbio chiedi pure.
      Intanto ti ricordo, che se vuoi, l’intero codice del framework è disponibile su github a questo indirizzo la licenza è GPL, per cui puoi fare ciò che vuoi dell’intero codice, a presto!

  4. mla marzo 10, 2014 at 9:43 am #

    Ciao.
    Sto usando il framework per una applicazione che sto costruendo.
    Non ripeto i complimenti solo perchè sono sinceramente dovuti e ormai scontati…

    Volevo chiederti se per le modalità di iterazione con JS per controlli sul database (con jquery o altro) hai avuto modo di predisporre qualche documento, anche in formato bozza o non completo, per sapere come usarlo all’interno del framework.

    Le mie conoscenze di PHP sono modeste, e mi troverei di fronte ad un caso in cui dopo aver selezionato un valore da un selection-box, devo proporne un altro valorizzato con i dati presi da una tabella ma che dipendono dal valore selezionato precedentemente. Questo all’interno di una medesima form.

    Ti sono grato se puoi darmi qualche dritta su come muovermi.

    Grazie

    • Jacopo aprile 4, 2014 at 10:45 pm #

      Ciao, ti linko un nuovo articolo che ho scritto, riguardo l’integrazione di javascript all’interno delle applicazioni scritte col framework, per l’integrazione col db, nelle callback che scrivi, si tratta semplicemente di includere le classi db.class.php e mysql_db.class.php come scritto nell’articolo 😉 http://nerdangolo.altervista.org/php-easymvc-ajax/

  5. Gio aprile 3, 2014 at 4:56 pm #

    Ciao, complimenti per il framework e l’esempio del blog, molto chiaro ed immediato. Sto provando a sviluppare un piccolo framework MVC “fatto in casa” dove ho preferito che sia il controller ad allocare l’oggetto DB. Ho cioè dei Controller che estendono la classe astratta baseController e da questi, richiamando un metodo setModel presente in esso, vado ad allocare l’oggetto DB. In questo modo son sicuro che venga istanziato soltanto quando si rende necessario l’accesso alla basedati (in teoria, la fonte dati potrebbe essere un file esterno XML, CSV, ecc.). Inoltre gestisco le URL richieste secondo lo schema:
    index/controllerName/actionName/id,
    sfruttando un file .htaccess che converte automaticamente le richieste in quel formato. In questa maniera gestisco i form di invio dati tramite chiamate POST invece che GET.
    Il problema che sto attualmente affrontando è quello di cercare di gestire tutte le action all’interno della stessa pagina index, senza ricorrere a file appositi, come new_post, per l’inserimento dati. Voglio cioè che quando inserisco dei dati tramite una insert, abbia poi sul submit una doppia azione: inserimento della nuova tupla i-esima nel DB ed automaticamente il refresh dell’elenco degli elementi presenti, nella index. Quindi avrò:

    richiamo il metodo “add” del controller “home” che si incarica di inserire i dati e, a quel punto, vorrei trovare il modo per fargli richiamare la “home/index” che presenti la lista aggiornata degli item presenti in DB. Ho visto che in postController usi la chiamata:
    header(“Location:index.php”);
    mi stavo chiedendo se sia possibile sfruttarla per il mio caso (ed eventualmente come?) o se magari ci siano altre soluzioni più lineari ed efficaci.
    Ho trovato molto interessante l’uso dei moduli esterni per caricare parti fisse del layout, come il menu: immagino si possa fare la stessa cosa per header e footer.
    Sono curioso di vedere come implementerai la parte di login degli utenti e un esempio d’utilizzo della classe translationEngine.
    Grazie per l’attenzione, Giovanni

    • Jacopo aprile 4, 2014 at 10:56 pm #

      Ciao Giovanni, grazie per i complimenti…

      la chiamata header(“Location:index.php”) sostanzialmente esegue un redirect dalla posizione corrente alla pagina specificata dopo location, per cui adesso, se tu hai un metodo nel tuo controller che recupera i dati e richiama la vista, se dopo l’insert effettui un redirect in modo che il router del framework ti indirizzi verso il metodo per recuperare i dati e mostrare la vista allora sì, potrebbe fare al caso tuo!

      per quanto riguarda la mini guida sul translationEngine è in lavorazione, intanto se sei curioso e vuoi dare un occhiata a come integrare javascript, jquery ed effettuare chiamate ajax col framework dai un occhiata al nuovo articolo: http://nerdangolo.altervista.org/php-easymvc-ajax/

      a presto!

      Jacopo

      • Gio aprile 10, 2014 at 9:07 pm #

        Ciao Jacopo, ho effettuato le prove e sono riuscito ad ottenere quanto volevo, grazie all’istruzione:
        header(“Location: ../”);
        che, al termine delle istruzioni della insert, riporta la URL alla radice del sito (home/index è il controller/action che aggiungo in append di default). Anche i link con i percorsi relativi, associati ad ogni item della lista visualizzata che rimandano alla pagina dei dettagli, rimangono integri. Tutto bene, quindi. Tuttavia mi stavo chiedendo se non ci sia un modo più elegante e flessibile per ottenere ciò. Tempo fa lessi che nei framework MVC vengono talvolta usate le “routing map”, popolate ed interrogate durante gli scambi di informazioni tra le classi dedicate “request” e “response”. Ha mai usato un tale sistema per gestire il routing? Ne parlerai in futuro nei tuoi articoli?
        Grazie, Giovanni
        P.S.: ho dato un’occhiata all’articolo sull’integrazione di chiamate ajax nel framework: non mi è stato chiarissimo, ma conto di approfondirlo nei prossimi giorni.

  6. laschil settembre 25, 2014 at 8:04 am #

    Parlerai delle sessioni, del login del menu?

  7. laschil09 settembre 30, 2014 at 10:22 am #

    Grazie per le lezioni, ma l’appetito vien mangiando, quindi quando parlerai di:
    Sessioni, Login, Controllo valori campi form, ecc ecc
    Grazie per l’attenzione.
    Lanfranco Schillaci

  8. franco febbraio 2, 2015 at 2:56 pm #

    Ho trovato intressante gli articoli relativi al framework php-easyMVC.
    Volevo chiderti se hai intenzione di continuare (visto che sono stati scritti da piu di un anno fa) ad esempio come impostare l’autenticazione di un utente di cui hai accennato all’inizio dell’ articolo.

  9. Matteo febbraio 22, 2016 at 7:23 am #

    Ciao Jacopo, e grazie per il bel lavoro che hai fatto con questo tutorial. Mi è piaciuto e l’ho usato subito. Credo che il funzionamento sia abbastanza chiaro e tante cose riesco a farle abbastanza bene. Sto costruendo una applicazione che registri gli interventi su delle apparecchiature di più clienti e dopo una settimana ho quasi finito. Considera che partivo quasi da zero! Ora però volevo farti una domanda: avrai sicuramente sentito parlare della classe FPDF (freePdf) per generare documenti cartacei. Ho provato in diversi modi a implementarla nel tuo framework, ma con scarsi risultati. Ho provato a aggiungerla come fpdf.class.phpinsieme agli altri controller, ho provato a metterla come modello, ma non ne vengo fuori.

    Non è che avresti 5 minuti di tempo per darmi un consiglio su come fare?

    Ti ringrazio infinitamente e ancora complimenti!

  10. mla maggio 25, 2016 at 10:37 pm #

    Ciao
    Provo a fare una domanda, che semplicemente dimostrerà quanto io non sia a conoscenza della logica di programmazione con le classi…

    Se io nel file config.php inserisco una variabile nuova, es $pippo, inizializzandola con un valore qualsiasi, come faccio ad evocare il contenuto di questa variabile in qualsiasi punto di un controller, es indexController.php?

    Ho provato a seguire come per esempio i parametri di accesso al database vengono passati, ma mi sono perso…
    Vorrei ottenere questa cosa, senza passare dalle variabili di sessione (se possibile).
    Grazie

Lascia un commento

Powered by WordPress. Designed by WooThemes