.: HosiriS :.

Informatica e non solo

Symfony: il modello

Posted by hosiris su aprile 19, 2010

Abbiamo iniziato a creare la nostra applicazione. Oggi analizzeremo il nostro modello, creando un opportuno database e generando le classi necesarie al funzionamento.
Comincaimo subito con l’editare il file di configurazione del database, se non conoscete il linguaggio YAML vi consiglio di dargli un’occhiata:


$ cd todo
$ vim config/schema.yml

e dentro incolliamo:


propel:
  todo:
    id: ~
    name: { type: varchar(255), required: true }
    date: { type: timestamp, required: true }
    description: { type: text}
    priority: { type: integer }
    completed: { type: boolean }

salvate, e passiamo alla creazione del DB. Suppongo che stiate usando mysql (comunque è possibile estendere tutto agli altri DBMS):


$ mysqladmin -uroot -p create todo
YoUrPaSs

Adesso dobbiamo avvisare symfony di quale db deve usare:


$ ./symfony configure:database "mysql:host=localhost;dbname=todo" root YoUrPaSs

Infine creiamo la struttura e le classi del modello:


$ ./symfony propel:build --all --no-confirmation

In questo modo troviamo tutto configurato. Adesso passiamo alla realizzazione di una visualizzazione. Creeremo un modulo che ci permetterà di vedere i dati presenti nel db.
Cominciamo subito col generare il modulo:


$ ./symfony propel:generate-module --with-show --non-verbose-templates frontend todo todo

Fatto questo, dal browser andate in http://localhost/frontend_dev.php/todo. Vedrete un interfaccia vuota. Provate a fare delle modifiche, agginugere attività.
Naturalmente ci si pone subito il problema di come modificare la vista, per rendere l’applicativo più presentabile.
Il layout viene generata dalla pagina apps/frontend/templates/layout.php. Potete sbizzarrirvi come volete nella gestione della interfaccia, io per il momento ho scritto solo questo:


<html>
  <head>
    <?php include_http_metas() ?>
    <?php include_metas() ?>
    <?php include_title() ?>
    <link rel="shortcut icon" href="/favicon.ico">
    <?php include_stylesheets() ?>
    <?php include_javascripts() ?>
  </head>
  <body>
    <div id="container">
      <div id="header"></div>
      <div id="content"><?php echo $sf_content; ?></div>
      <div id="footer"></div>
    </div>
  </body>
</html>

Applicando il seguente css:


// web/css/main.css
#header{
    border: 1px black solid;
}
#content{
    border: 1px black solid;
}
#footer{
    border: 1px black solid;
}

Noterete come questa interfaccia sarà sempre presente durante la navigazione. Se volessimo modificare le informazioni che vengono visualizzate, che file dobbiamo editare? Symfony usa un metodo molto intelligente per indicare un template associato ad una azione, usa nome dell’azione seguito da Success.
Per cui le informazioni che vengono mostrate nella prima pagina possono essere visualizzate in apps/frontend/modules/todo/templates/indexSuccess.php. Modificando questo file potrete modificare lo stile di visualizzazione.
Notiamo che è possibile applicare un diverso file css semplicemente usando uno dei metodi helper messi a disposizione: use_stylesheet();.

Direi che avete acquisito molte informazioni per sta volta. Provate a giochicchiare un pò, modificate il modello, modifica la vista… ed enjoy yourself!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: