Development

Documentation/it_IT/book/1.0/08-Inside-the-Model-Layer (diff)

You must first sign up to be able to contribute.

Changes between Version 6 and Version 7 of Documentation/it_IT/book/1.0/08-Inside-the-Model-Layer

Show
Ignore:
Author:
giosan (IP: 82.61.238.166)
Timestamp:
03/19/08 11:40:25 (10 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/it_IT/book/1.0/08-Inside-the-Model-Layer

    v6 v7  
    1515I database sono relazionali. Symfony e PHP 5 sono orientati agli oggetti. Per poter accedere efficacemente al database in un contesto orientato agli oggetti, occorre disporre di un'interfaccia che traduca l'oggetto logico in relazionale. Come spiegato nel Capitolo 1, tale interfaccia è chiamata object-relational mapping (ORM), ed è composta di oggetti che forniscono accesso ai dati e contengono le business rules al proprio interno. 
    1616 
    17 Il più grande vantaggio di ORM è la riusabilità, che permetti ai metodi dei data object di essere chiamati da varie parti dell'applicazione, o anche da diverse applicazioni. Inoltre il layer ORM incapsula la data logic; ad esempio, il calcolo del rating di un utente di un forum basato sul numero dei suoi contributi dalla loro popolarità. Quando una pagina deve mostrare tale rating, chiama semplicemente un metodo del modello, senza preoccuparsi dei dettagli del calcolo. Se l'algoritmo di tale calcolo dovesse cambiare in futuro, dovresti solo modificarlo nel modello, lasciando inalterato il resto dell'applicazione. 
     17Il più grande vantaggio di ORM è la riusabilità, che permette ai metodi dei data object di essere chiamati da varie parti dell'applicazione, o anche da diverse applicazioni. Inoltre il layer ORM incapsula la data logic; ad esempio, il calcolo del rating di un utente di un forum basato sul numero dei suoi contributi dalla loro popolarità. Quando una pagina deve mostrare tale rating, chiama semplicemente un metodo del modello, senza preoccuparsi dei dettagli del calcolo. Se l'algoritmo di tale calcolo dovesse cambiare in futuro, dovresti solo modificarlo nel modello, lasciando inalterato il resto dell'applicazione. 
    1818 
    1919Utilizzare oggetti invece di record e classi invece di tabelle ha un altro beneficio: ti permette di aggiungere componenti ai tuoi oggetti senza che questi siano necessariamente colonne in una tabella. Ad esempio, se tu avessi una tabella `client` con due campi chiamati `first_name` e `last_name`, potresti avere la capacità di richiedere semplicemente `Name`. In un mondo orientato agli oggetti, è semplice quanto aggiungere un metodo alla classe `Client`, come mostrato nel Listato 8-1. Dal punto di vista dell'applicazione, non c'è differenza tra gli attributi `Name`, `FirstName` o `LastName` della classe `Client`. Solo la classe stessa può determinare quale corrispondenza esiste tra colonna e attributo.