.: HosiriS :.

Informatica e non solo

Evviva le torte, ovvero ora tocca a CakePHP

Posted by hosiris su dicembre 26, 2010

A forza di suonare sinfonie ti vien fame, no (;P)? E quindi mi sono buttato a capofitto nello studio di CakePHP.
Certamente non ho le competenze per poter dare giudizi obiettivi, ma posso riferire quelle che sono le espressioni di un utente. A prima vista CakePHP sembra una applicazione molto più semplice di Symfony, la distinzione tra i vari componenti MVC è più netta rendendo più lineare la logica di programmazione. D’altro canto, Symfony è molto potente, rendendo possibile ogni progetto complesso. In conclusione non ho una preferenza e sono felice di portare nel mio bagaglio di conoscenze entrambi questi strumenti.
Voglio però riproporre un progetto che tempo fa sviluppai usando Symfony: la ToDo List. La versione di cake che sto utilizzando è la 1.3 e per l’installazione rimando alle guide che stanno sul sito. Una volta scompattato il tutto ci troviamo di fronte ad una semplice architettura. La cartella più importante è la app, all’interno della quale troviamo cartelle riguardanti le configurazioni, controller, model e view.
Cominciamo con il configurare la connessione al DB. Apriamo il file app/config/database.php (rinomiamo quello esistente) e modifichiamolo come segue:

<?php
class DATABASE_CONFIG {
  var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'port' => 3306,
    'login' => 'user',
    'password' => 'pass',
    'database' => 'db',
  );
}
?>

Creiamo il nostro database con una tabella (items) composta da:

id: primary key;
item: varchar(255);
description: text;
created_at
modified_at

Se ricordate a questo punto con Symfony avremmo creato applicazioni e moduli, i modelli venivano automaticamente generati dalla stessa applicazione. Con CakePHP, per lo meno in questa fase di conoscenza, creeremo manualmente i modelli (in questo caso parliamo di una sola tabella, quindi niente di complesso). Spostiamoci nella cartella app/controllers e creiamo il file items_controller.php:

<?php
class ItemsController extends AppController {
  var $name = 'Items';
  var $scaffolds;
}
?>

salviamo e spostiamoci in app/models e creiamo un file chiamato item.php:

<?php
class Item extends AppModel {
  var $name = 'Item';
  var $displayField = 'item';
}
?>

Immagino che già vi è passata la voglia… allora vi consiglio di andare con il vostro browser alla pagina http://vostrosito/items😀 Siete stupiti vero?
è tutto praticamente pronto… tutto funziona ed il segreto sta all’interno della variabile $scaffolds. Ho scelto di iniziare dalla via difficile (che poi tanto difficile non è) perchè vorrei trasmettere la mia abitudine di sprofondare all’interno delle cose. Il motivo è semplice, se si comprendo i meccanismi di base non ci sarà più niente che potrà fermarci.
Continuando a leggere il manuale di cake comincerete a migliorare la vostra applicazione, conoscerete gli standard sul naming, conoscerete come trattare le view e come aggiungere azioni al controller.

Vien da se che il prossimo progetto che rivedrò sarà GLiAr, anche qui il motivo è semplice… purtroppo non sono riuscito a trovare supporto per imparare a gestire le relazioni molti a molti e CakePHP mi ha reso possibile questa attività dopo solo 1 ora di studio…

Buon divertimento.

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: