I share so I am Contributions et réflexions

19mar/102

sfWidget rendu via un composant Symfony

Les formulaires créés en utilisant Symfony sont composés de widgets et de validators. Les widgets décrivent l'apparence des champs du formulaire alors que les validators décrivent leur contenu. Il est actuellement possible de choisir parmi plus de 80 types de widget différents (entre ceux de l'API et les plugins). Ils correspondent globalement à des éléments d'interface standardisés.

Si vous avez essayé de créer votre propre widget, vous avez du vous apercevoir que le rendu est fait a l'intérieur de la fonction sfWidget->render(). Ce qui suffit pour des rendus simples, mais s'avère inapproprié lorsque votre champ de formulaire se complexifie. La structure vue-contrôleur du framework n'est pas respectée.

Pour compenser ce manque, j'ai créé un widget dont le rendu se fait via un composant (component) ou une vue partielle (partial). Ce widget est destiné à faciliter la création de champ de formulaire spécifiques pouvant utiliser entre autre AJAX, le profil de l'utilisateur, l'objet sfContext et sfRequest...

10jan/104

Plugin sfDoctrineAdminGeneratorWithShowPlugin pour Symfony 1.4

Une question récurrente sur les forums traitant du framework Symfony :

A quoi sert le paramètre with_show dans le fichier generator.yml ?

Aussi surprenante soit-elle, la réponse usuelle à cette question est :

Par défaut, à rien...

Alors comment afficher les détails d'un objet dans une page d'administration sans que celles-ci soient modifiables ? il est bien nécessaire d'activer l'action show. Les plugins sfDoctrineAdminGeneratorWithShowPlugin et sfPropelAdminGeneratorWithShowPlugin ont été créés pour compenser ce manque. Malheureusement ils ne fonctionnent que pour Symfony 1.2 et 1.3.

7jan/106

Détecter le contexte d’exécution sous Symfony

Lorsqu'on développe avec le framework Symfony, ou plus généralement en PHP, il est parfois nécessaire de connaitre le contexte dans lequel est exécuté le code pour adapter les actions effectuées. Ainsi, il est possible d'identifier au moins 4 contextes d'appel pour lesquels je vous propose une méthode de détection :

  1. Depuis la console (communément appelé CLI)
  2. Depuis une adresse locale (localhost)
  3. Depuis une requête AJAX (ou XMLHttpRequest JavaScript)
  4. En mode debug
  5. Contexte d'exécution