Skip to content

Commit

Permalink
Merge branch 'master' of git://github.com/symfony/symfony1-docs
Browse files Browse the repository at this point in the history
  • Loading branch information
hidenorigoto committed Aug 30, 2010
2 parents 46d6472 + 5c4f7a5 commit 8351989
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 63 deletions.
2 changes: 1 addition & 1 deletion gentle-introduction/it/01-Introducing-Symfony.markdown
Expand Up @@ -50,7 +50,7 @@ Symfony è stato creato per soddisfare i seguenti requisiti:
La maggior parte delle caratteristiche comuni dei progetti web sono automatizzate in
symfony, come segue:

* Lo strato precostituito di internazionalizzazione consente la traduzione sia dei dati
* Il livello di internazionalizzazione consente la traduzione sia dei dati
che delle interfacce, così come anche localizzazione dei contenuti.
* La presentazione usa template e layout che possono essere costruiti da grafici HTML
senza alcuna conoscenza del framework. Le funzioni helper riducono l'ammontare di
Expand Down
6 changes: 3 additions & 3 deletions gentle-introduction/it/03-Running-Symfony.markdown
Expand Up @@ -314,17 +314,17 @@ cartella `apps/frontend/`.
>due vulnerabilità più diffuse sul web. Symfony
>attua automaticamente le misure di ~sicurezza|Sicurezza~ per nostro conto.
>
>Per prevenire attacchi di tipo ~XSS~, viene abilitata l'escapizzazione dell'output; per prevenire
>Per prevenire attacchi di tipo ~XSS~, viene abilitata l'escape dell'output; per prevenire
>attacchi di tipo ~CSRF~, viene generata una stringa CSRF casuale.
>
>Naturalmente, queste impostazioni si possono modificare, grazie alle *opzioni* seguenti:
>
> * `--escaping-strategy`: Abilita o disabilita l'escapizzazione dell'output
> * `--escaping-strategy`: Abilita o disabilita l'escape dell'output
> * `--csrf-secret`: Abilita i token di sessione nei form
>
>Per chi ne sa poco di
>[XSS](http://en.wikipedia.org/wiki/Cross-site_scripting) o
>[CSRF](http://en.wikipedia.org/wiki/CSRF), è meglio dedicare un po' di tempo per imparare qualcosa
>[CSRF](http://en.wikipedia.org/wiki/CSRF), è meglio dedicare un po' di tempo a imparare qualcosa
>su queste vulnerabilità relative alla sicurezza.
### Permessi nella struttura delle cartelle
Expand Down
16 changes: 8 additions & 8 deletions gentle-introduction/it/06-Inside-the-Controller-Layer.markdown
@@ -1,11 +1,11 @@
Capitolo 6 - All'interno dello strato controllore
=================================================
Capitolo 6 - All'interno del livello del controllore
====================================================

Il controllore in symfony è lo strato che contiene il codice che collega la business logic alla presentazione, esso è diviso in diversi componenti che si usano per diversi scopi:
Il controllore in symfony è il livello che contiene il codice che collega la business logic alla presentazione, diviso in diversi componenti che si usano per diversi scopi:

* Il front controller è il punto d'accesso univoco all'applicazione. Si occupa di caricare la configurazione e determina l'azione da eseguire.
* Le azioni contengono la logica dell'applicazione. Verificano l'integrità della richiesta e preparano i dati necessari allo strato di presentazione.
* Richiesta, risposta e oggetti di sessione permettono l'accesso ai parametri della richiesta, alle intestazioni della risposta e ai dati persistenti dell'utente. Vengono usati molto spesso nello strato controllore.
* Le azioni contengono la logica dell'applicazione. Verificano l'integrità della richiesta e preparano i dati necessari al livello della vista.
* Richiesta, risposta e oggetti di sessione permettono l'accesso ai parametri della richiesta, alle intestazioni della risposta e ai dati persistenti dell'utente. Vengono usati molto spesso nel livello controllore.
* I filtri sono porzioni di codice eseguito a ogni richiesta, prima o dopo l'azione. Per esempio i filtri di sicurezza e validazione sono usati comunemente nelle applicazioni web. Si può facilmente estendere il framework creando i propri filtri.

Questo capitolo descrive tutti questi componenti, non fatevi intimidire dal loro numero. Per una pagina semplice molto probabilmente basterà scrivere poche righe di codice nella classe dell'azione, tutto qui. Gli altri componenti del controllore vengono utilizzati solo in situazioni particolari.
Expand Down Expand Up @@ -129,7 +129,7 @@ Listing 6-4 - Classe azione con due azioni, in `frontend/modules/mymodule/action
}
}

Se la dimensione di una classe azione tende a crescere troppo, molto probabilmente, necessita di un po' di refactoring per spostare del codice verso lo strato del modello. Le azioni dovrebbero essere mantenute sempre brevi (non più di alcune righe), mentre tutta la business logic dovrebbe essere nel modello.
Se la dimensione di una classe azione tende a crescere troppo, molto probabilmente necessita di un po' di rifattorizzazione per spostare del codice verso il livello del modello. Le azioni dovrebbero essere mantenute sempre brevi (non più di alcune righe), mentre tutta la business logic dovrebbe essere nel modello.

Nonostante questo il numero di azioni in un modulo potrebbe essere così elevato da spingervi a separarlo in due moduli.

Expand Down Expand Up @@ -267,7 +267,7 @@ Nel caso in cui non esista una vista da chiamare--per esempio nel caso in cui un
[php]
return sfView::NONE;

Nessun template verrà eseguito in questo caso. Significa che è possibile aggirare completamente lo strato della vista e impostare il codice HTML di risposta direttamente in un'azione. Come mostrato nel listato 6-9, symfony mette a disposizione uno specifico metodo `renderText()` per questo caso. Può essere utile quando si ha bisogno di un'azione estremamente responsiva, come per le interazioni Ajax, che verranno affrontate nel Capitolo 11.
Nessun template verrà eseguito in questo caso. Significa che è possibile aggirare completamente il livello della vista e impostare il codice HTML di risposta direttamente in un'azione. Come mostrato nel listato 6-9, symfony mette a disposizione uno specifico metodo `renderText()` per questo caso. Può essere utile quando si ha bisogno di un'azione estremamente responsiva, come per le interazioni Ajax, che verranno affrontate nel Capitolo 11.

Listing 6-9 - Aggirare la vista facendo l'echo della risposta e ritornando `sfView::NONE`

Expand Down Expand Up @@ -987,6 +987,6 @@ Il parametro `partial_view_class` definisce la classe della vista utilizzata per
Sommario
--------

In symfony lo strato del controllore è diviso in due parti: il front controller, l'unico punto d'accesso per l'applicazione in un dato ambiente, e le azioni che contengono la logica delle pagine. Un'azione ha l'abilità di determinare come verrà eseguita la sua vista restituendo una delle costanti `sfView`. All'interno di un'azione si possono manipolare i diversi elementi del context, inclusi l'oggetto della richiesta (`sfRequest`) e l'oggetto della sessione utente corrente (`sfUser`).
In symfony il livello del controllore è diviso in due parti: il front controller, l'unico punto d'accesso per l'applicazione in un dato ambiente, e le azioni che contengono la logica delle pagine. Un'azione ha l'abilità di determinare come verrà eseguita la sua vista restituendo una delle costanti `sfView`. All'interno di un'azione si possono manipolare i diversi elementi del context, inclusi l'oggetto della richiesta (`sfRequest`) e l'oggetto della sessione utente corrente (`sfUser`).

Combinando assieme la potenza dell'oggetto sessione, l'oggetto azione, le configurazioni di sicurezza, symfony mette a disposizione un completo sistema di sicurezza con restrizione sull'accesso e sistema di credenziali associato. Se i metodi `preExecute()` e `postExecute()` sono stati pensati per il riutilizzo del codice all'interno di un modulo, i filtri permettono lo stesso grado di riutilizzo per tutte le applicazioni facendo eseguire codice del controllore per ogni singola richiesta.
14 changes: 7 additions & 7 deletions gentle-introduction/it/07-Inside-the-View-Layer.markdown
@@ -1,5 +1,5 @@
Capitolo 7 - All'interno dello strato vista
===========================================
Capitolo 7 - All'interno del livello della vista
================================================

La vista è la responsabile per la visualizzazione dell'output relativo a una particolare azione. In symfony, la vista è costituita da più parti, di cui ogni singolo elemento è stato progettato per essere facilmente modificato da chi di solito lavora con esso.

Expand Down Expand Up @@ -553,9 +553,9 @@ Listato 7-19 - Configurazione predefinita della vista a livello di applicazione,

Ciascuna di queste impostazioni verrà descritta in dettaglio nella sezione "Impostazione della configurazione della vista".

### L'oggetto Response
### L'oggetto response

Sebbene faccia parte dello strato vista, l'oggetto response viene spesso modificato dall'azione. Le azioni possono accedere all'oggetto response di symfony, chiamato `sfResponse`, attraverso il metodo `getResponse()`. Il Listato 7-20 elenca alcuni dei metodi di `sfResponse` spesso utilizzati all'interno di un'azione.
Sebbene faccia parte del livello vista, l'oggetto response viene spesso modificato dall'azione. Le azioni possono accedere all'oggetto response di symfony, chiamato `sfResponse`, attraverso il metodo `getResponse()`. Il Listato 7-20 elenca alcuni dei metodi di `sfResponse` spesso utilizzati all'interno di un'azione.

Listato 7-20 - Le azioni hanno accesso ai metodi dell'oggetto `sfResponse`

Expand Down Expand Up @@ -865,8 +865,8 @@ Listato 7-37 - Rimozione del layout
>**NOTE**
>Le viste per le azioni Ajax non hanno layout per impostazione predefinita.
Escapizzazione dell'output
--------------------------
Escape dell'output
------------------

Quando vengono inseriti dati dinamici in un template, bisogna essere sicuri dell'integrità dei dati. Per esempio, se i dati provengono da form compilati da utenti anonimi, c'è il rischio che possano includere script maligni che hanno lo scopo di lanciare attacchi di tipo cross-site scripting (XSS). Bisogna essere in grado di fare l'escape dei dati visualizzati, in modo che qualunque tag HTML possa contenere diventi inerte.

Expand Down Expand Up @@ -974,7 +974,7 @@ Listato 7-39 - L'escape funziona anche per gli array e gli oggetti
<?php echo get_class($test_object) ?>
=> sfOutputEscaperObjectDecorator

Questo spiega perché alcune normali funzioni PHP (come `array_shift()`, `print_r()` e altre) non funzionano più con gli array esacpizzati. Ma questi possono essere acceduti utilizzando `[]`, essere attraversati usando `foreach` e restituire il corretto risultato con `count()`. E in ogni caso nei template i dati dovrebbero essere a sola lettura, quindi la maggior parte degli accessi verrà fatta utilizzando metodi che funzionano correttamente.
Questo spiega perché alcune normali funzioni PHP (come `array_shift()`, `print_r()` e altre) non funzionano più con gli array sotto escape. Ma questi possono essere acceduti utilizzando `[]`, essere attraversati usando `foreach` e restituire il corretto risultato con `count()`. E in ogni caso nei template i dati dovrebbero essere a sola lettura, quindi la maggior parte degli accessi verrà fatta utilizzando metodi che funzionano correttamente.

C'è ancora un modo per recuperare i dati raw attraverso l'oggetto `$sf_data`. Inoltre, i metodi di oggetti sotto escape vengono alterati per accettare un parametro aggiuntivo: un metodo di escape. Così si può scegliere un metodo alternativo per fare l'escape ogni volta che si visualizza una variabile in un template, oppure optare per l'helper `ESC_RAW` per disattivare l'escape. Vedere il Listato 7-40 come esempio.

Expand Down

0 comments on commit 8351989

Please sign in to comment.