Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/garak/garakdemobundle


https://github.com/garak/garakdemobundle

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

sfjqec
======

(english version below)
-----------------------

Questo bundle è la trasposizione in Symfony2 di un piccolo progetto, chiamato
[sfjqec](https://github.com/garak/sfjqec). È stato creato a scopo didattico, per una
presentazione tenuta inizialmente per il [PUG Roma](http://roma.grusp.org/) e poi
ampliata per il [phpDay](http://www.phpday.it/2011).
Lo scopo di questo codice è in generale mostrare come integrare correttamente
Javascript e PHP, con particolare riferimento a Symfony e jQuery.
Il progetto mostra un semplicissimo e-commerce, da cui il nome: sfjqec è formato da
sf (Symfony) + jq (jQuery) + ec (e-commerce).

in breve
--------

In estrema sintesi, questo progetto mostra come integrare correttamente Javascript e PHP,
usando AJAX. I passi sono i seguenti:

* scrivere l'applicazione come se Javascript non esistesse
* legare alcuni eventi (tipicamente click di link e submit di form) a delle funzioni
Javascript
* ciascuna di queste funzioni Javascript richiama uno script PHP, tramite AJAX
* al successo della chiamata AJAX, richiama un'altra funzione Javascript, che si occupa
di manipolare il DOM

Nello specifico di jQuery e Symfony, i passi si traducono nel seguente modo:

* scrivere il controller normalmente
* scrivere un file Javascript che usi l'evento `ready()` di jQuery e che faccia il `bind`
dei click e dei submit necessari
* usare l'evento passato da `bind` nella funzione Javascript per estrarre i riferimenti
necessari dal DOM
* nel controller, effettuare le necessarie modifiche (spesso basta modificare i redirect,
in modo che NON siano effettuati per le richieste AJAX)
* nella vista, aggiungere un file del tipo `NomeAzione.json.twig`
* di nuovo nel file Javascript, scrivere la funzione che deve manipolare il DOM,
basandosi sulla variabile `result`, che a questo punto contiene un oggetto JSON, che
jQuery ricava dal codice della vista del punto precedente

A questo punto il mio consiglio è quello di analizzare i passi precedenti, tenendo
sott'occhio il codice di questo progetto, in particolare il controller e il file js.

installazione
-------------

Aggiungere le seguenti righe al proprio file `composer.json`:

``` json
"require": {
"garak/demo-bundle": "dev-master"
},
"repositories": [{
"type": "vcs",
"url": "http://github.com/garak/GarakDemoBundle"
}],
```

Abilitare il bundle nel kernel:

``` php