Jonathan Démoutiez
Coin_hg Vide Coin_hd
 

Entrons dans le monde de symfony

publié le 13/08/07 par Jonathan Démoutiez

Jusqu’ici nous avons vu les grands points de Symfony mais surtout son fonctionnement (application / modules / actions / vues; partials / helpers).

Mais symfony est un framework et nous offre donc une multitude d’helpers et de fonctions à disposition qui vont nous simplifier la vie.

De nombreuses fonctions de Symfony permettent de générer une balise HTML.

Les fonctions les plus courantes

Liens HTML

Puisque symfony utilise de l’url rewriting nous passerons systématiquement par les fonctions de symfony pour générer des liens. Ceci permettra de formater automatiquement les liens :

Accueil/index?var1=value1

deviendra automatiquement :

Accueil/index/var1/value1

link_to(TEXTE, LIEN, PROPRIETES) : génére un simple lien html. Le troisième paramètre est une chaine de caractères qui peut contenir tous les attributs possibles d’une balise A_ sous cette forme : _target=nom, popup=true, alt=text

  link_to('clic ici', 'PUB/index?pub=2', 'popup=true')

Liens & Javascript

En faisant appel à l’helper `Javascript` nous pourrons utiliser :

link_to_function(TEXTE, CODE_JAVASCRIPT) qui génére un lien faisant appel à du code javascript onclick.

  link_to('clic ici', 'alert(\'BONJOUR !\')') ?>

link_to_remote(TEXTE, array()), fait appel à une page en ajax.

  link_to_remote(
'clic ici',
array(
'url' => 'MODULE/ACTION',
'update' => 'div_id_1',
'loading' => 'alert(\'Debut\')',
'complete' => 'alert(\'FIN\')',
'script' => true
'confirm' => 'Etes vous sur ?'
)
)

loading permet de spécifier du code javascript à exécuter avant l’appel ajax, et complete après l’appel.

update est l’id de l’élément HTML à mettre à jour.

confirm permet de géré automatiquement une petite alert de confirmation.

ATTENTION : si vous ne mettez pas script à true, le code Javascript récupéré en ajax ne sera pas executé !

Remarque : Cet helper offre de très nombreuses fonctions (tel que les fonctions de Drag And Drop par exemple) que vous trouverez dans la documentation officielle.

Image

  image
équivaut à :
  image_tag('image');

Remarque : Certaines extensions seront prises en compte automatiquement (‘jpg’, ‘png’) sinon précisez la.

L’image est automatiquement recherchée dans le dossier web/images, mais nous pourons accèder à d’autres dossiers :

/images2/image ou encore sous_dossier_images/image

Formulaire

  
form_tag('MODULE/ACTION', 'method=post');

Saisissez :
label_tag('input1', 'Saisissez : ')


input_tag('input1', 'valeur')


submit_tag('Ok')

La balise select

  select_tag(
'NAME',
options_for_select(
array(
'value' => 'affiche',
'value1' => 'affiche1'
),
'valeur_par_defaut'
),
'size=2'
)

Remarque : Vous pouvez spécifier des ‘optgroup’ :

  options_for_select(
array(
'groupe 1' => array(),
'value' => 'affiche',
'groupe 2' => array(),
'value1' => 'affiche1'
),
'valeur_par_defaut'
)

De nombreuses autres fonctions associées sont disponibles, ce qui rend le tout très intuitif.

 
Coin_bg Vide Coin_bd
Vide
Jonathan Démoutiez
©2010 Jonathan Démoutiez Valid XHTML 1.0 Transitional