La logica di symfony
symfony è sviluppato per avere una struttura logica semplice ma ottimale in ogni caso.
La struttura di un sito realizzato con symfony è la seguente:
- progetto: è il sito stesso.
- applicazione: nel classico esempio dell’applicazione frontend e quella backend.
- modulo: un modulo racchiude azioni che hanno qualcosa in comune. Ad esempio un modulo utente gestirà tutte gli aspetti riguardanti gli utenti
- azione: la parte più piccola. Nel caso del modulo utente, le azioni saranno per esempio visualizzaDati, modificaPassword, effettuaLogin ecc.
Per creare il filesystem necessario allo sviluppo, abbiamo già detto di aver bisogno della riga di comando. Vediamo come si creerebbe la struttura dell’esempio precedente utilizzando il comando symfony.
symfony init-project nomesito
symfony init-app frontend
symfony init-app backend
symfony init-module frontend utente
Con questi comandi creiamo il progetto “nomesito”, le applicazione frontend e backend, ed il modulo utente appartenente all’applicazione frontend.
Vorrei sottolineare il fatto che alla prima applicazione creata verrà associata anche la pagina index.php, ovvero sarà il punto d’ingresso del nostro sito. Sarà possibile ovviamente cambiare questa scelta in seguito, ma è preferibile già da ora fare la nostra decisione.
Queste sono proprio le basi per la creazione delle vostre applicazioni in symony. Per ulteriori informazioni potete consultare l’ottima documentazione ufficiale.
Ora invece passiamo al codice vero e proprio. Nella cartella apps inizialmente vuota ora vi saranno due directory chiamate frontend e backend. Entriamo in quella frontend, scegliamo modules, utente, ed infine actions. Da qui apriamo il file actions.class.php.
Come potete vedere è una classe che si presenta in questo modo:
<?php
/**
* utente actions.
*
* @package nomeprogetto
* @subpackage utente
* @author Your name here
* @version SVN: $Id: actions.class.php 2692 2006-11-15 21:03:55Z fabien $
*/
class utenteActions extends sfActions
{
/**
* Executes index action
*
*/
public function executeIndex()
{
$this->forward('default', 'module');
}
}
Questa è una tipica classe di azioni. executeIndex è l’azione predefinita (a meno che non si specifichi un’altra tramite la configurazione). Ogni azione raggiungibile dal browser dev’essere preceduta da “execute“, e deve avere la prima lettera maiuscola, ad esempio “executeLogin“, “executeVisualizzaDati“, “executeRegistrazione“. Ora, supponendo che il vostro web server (presumibilmente apache) punti alla directory base del nostro progetto, per accedere tramite browser si dovrà utilizzare questo url:
http://localhost/web/fronted_dev.php/utente
In questo modo punteremo alla directory web, file frontend_dev.php (il nostro front controller), ed al modulo utente. Non essendo specificata l’azione, verrà eseguita quella predefinita, ovvere index.
Ora analizziamo questo:
$this->forward('default','module');
Con questo codice attiviamo una sorta di redirect, che senza far cambiare l’indirizzo al browser, esegue un modulo ed azione differenti. L’accoppiata default/module è quella predefinita, e mostra la pagina di benvenuto di symfony.
Ora cancelliamo quella riga, e trasformiamola in
$this->messaggio = 'Hello, world!';
Ora apriamo il file “apps/frontend/modules/utente/templates/indexSuccess.php” e vi scriviamo dentro
<?php echo $messaggio ?>
Aggiorniamo la pagina del browser, ed ecco che come per magia abbiamo realizzato il nostro hello world in symfony! Fin qui tutto semplice, dalla prossima inizieremo con qualcosa di più complesso. A presto!





Commenti
Questo articolo è stato segnalato su ZicZac.it….
…
La logica di symfony…
symfony è sviluppato per avere una struttura logica semplice ma ottimale in ogni caso….
La logica di symfony…
symfony è sviluppato per avere una struttura logica semplice ma ottimale in ogni caso.
La struttura di un sito realizzato con symfony è la seguente:
* progetto: è il sito stesso.
* applicazione: nel classico esempio dell’applicazione fron…