I18n du routing pour les modules d’admin Symfony
L'internationalisation d'une application (i18n) consiste à servir les pages dans la langue de l'utilisateur. Par défaut, les modules d'admin de Symfony gèrent l'i18n. Ainsi, il est simple de traduire ces modules. Dans cet article je vais vous expliquer :
- comment gérer plusieurs langues pour l'interface de vos modules d'administration en indiquant la langue dans l'URL
- et comment basculer en un clic d'une langue à une autre.
Cet article est écrit pour Symfony 1.4 avec l'admin-generator Doctrine. Nous utiliseront également le plugin sfLanguageSwitchPlugin.
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.
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 :
- Depuis la console (communément appelé CLI)
- Depuis une adresse locale (localhost)
- Depuis une requête AJAX (ou XMLHttpRequest JavaScript)
- En mode debug
- Contexte d'exécution
Développer un plugin pour MySQL Workbench
MySQL Workbench est un logiciel de modélisation de bases de données pour MySQL. Successeur du feu DB Designer, il offre une ergonomie d'utilisation, une stabilité et un éventail de fonctionnalité très étendu :
- Modélisation des tables et des relations spécifiquement pour MySQL,
- Génération des scripts SQL et de la base de données MySQL,
- Création des diagrammes à partir d'une base MySQL existante ou d'un script SQL.
Mais pour un projet contenant de nombreuses tables, il est parfois nécessaire d'effectuer des traitements automatiques sur celles-ci. MySQL Workbench est un logiciel "programmable", c'est-à-dire qu'il est possible de développer des script/plugins pour automatiser certaines tâches telles que :
- génération de code (comme le schema.yml de Doctrine),
- création de documentation,
- modifications du schéma ...
Le langage de programmation est LUA, celui-ci a une syntaxe proche de python, quelques exemples de code sont disponibles sur le wiki de MySQL.
Vue au format JSON sous Symfony
Contrairement à ce que son nom indique, l'AJAX utilise de plus en plus le format JSON pour échanger des données entre le navigateur et le serveur. Le framework PHP Symfony se déclare "Easy AJAX", il l'est pour l'intégration de JavaScript, mais la création de vues non-HTML n'est pas toujours évidente. Cet article propose deux méthodes pour générer du code JSON depuis Symfony avec ou sans aide au débuggage.
Les usages sont multiples, par exemple :
- Auto-complétion d'un champ avec le plugin sfFormExtraPlugin,
- les événements issus de la base de données à afficher dans un calendrier FullCalendar,
- ou une galerie photos AJAX avec minishowcase.
