jQuery mobile, Symfony2, Doctrine 2 et autres tests…

Bonne année!!

Et oui, après de longs mois de silence, les bonnes résolutions de 2011: comme je suis curieux, j’ai voulu faire quelques tests avec Symfony2 et jQuery mobile.

Et comme ma blonde a une « passion » pour les départements français (donner un numéro de département, et deviner le nom du département – difficile à comprendre quand on n’est pas de France j’imagine), j’ai fait un mini-site qui liste les départements français (liste de tous les départements ou par région).

Testez-le ici.

Mise à jour (2011-01-09)

J’ai aussi réaliser quelque chose de similaire pour les capitales des pays. Voir ici. Cela m’a permis de jouer avec les classes php SimpleXMLElement, DOMDocument et la famille PHP DOM, mais aucune ne m’a complètement convaincue. Voir ici pour des commentaires additionnels.

J’ai utilisé…

  • le framework Symfony2 PR4: j’ai utilisé le fichier tarball pour être rapidement « efficace ». Simple à installer, mais je pense qu’il manque quelques commandes Symfony pour générer des Bundles par exemple (j’ai pas trop chercher, peut-être que ça existe)
  • jQuery mobile 1.0 ALPHA 2:
    • les listView: encore quelques améliorations sont nécessaire (notamment pour les count bubbles des nested list), mais ça promet,
    • les liens (remplacés en call ajax) et le back automatique: cool, mais parfois pas très fluide et très lent, et je pense que c’est encore lent si le lien est dans une liste de 100+ items (DOM trop complexe)
    • parfois lorsque la page se loade sur le iphone, le css ne semble pas appliqué. Le problème se résout lorsqu’on raffraichit la page: problème de latence réseau, problème de webKit, problème de DOM trop long, ou de performance iPhone? Je ne sais pas, mais problème il y a… Pour répliquer à tout coup le problème, allez sur votre iphone à http://departements.fruitsoftware.com/index2.html. Dans la dernière version (http://departements.fruitsoftware.com), j’ai séparé les listes imbriquées en 2 pages: chaque nested list est dans une page séparée.
    • d’une manière générale, il reste encore (un peu (?), beaucoup (?)) de travail à faire. Mais très prometteur et utilisable si on accepte les limitations actuels.
  • une base de donnée mySQL et l’ORM Doctrine 2 avec les docBlock annotations (Doctrine 2: excellent!!). Sauf que je n’ai pas trouvé de façon d’initialiser la connexion à UTF8 via la configuration de Symfony2. Pour m’en sortir, j’ai créé une petite méthode dans l’unique controleur de l’application (probablement une meilleure manière de faire, notamment via les postConnect events de la DBAL de Doctine):
        public function fixUtf8() {
            $conn = $this->get('database_connection');
            $statement = $conn->prepare('SET NAMES \'utf8\';');
            $statement->execute();
        }
    
  • Twig pour les views de Symfony2: je n’ai pas trouvé de limitations pour l’instant, il faut s’habituer je pense à la syntaxe (et à l’IDE qui ne « highlight » pas et ne formate pas correctement – tabs…)

Reste à tester…

  • le HTTP cache de Symfony2: je trouve le principe excellent, je me garde juste ça pour plus tard…
  • comment jQuery mobile se comporte avec Google Analytics, notamment avec le remplacement automatique des liens par des calls Ajax [EDIT] J’ai trouvé ce lien qui semble répondre à cette question: http://www.jongales.com/blog/2011/01/10/google-analytics-and-jquery-mobile/
  • les formulaire jQuery mobile et leur intégration avec Symfony2
  • les formulaires Symfony2 en général
  • PhoneGap (lire cet article)

Quelques remarques

  • s’il vous plait, pas de commentaires sur les régions qui ne sont pas des régions, …. J’ai pris mes données de wikipédia, alors, bon, hein…
  • Le framework Symfony2 semble avoir gagner en robustesse par rapport à la version 1, mais aussi plus exigeant: code plus long à taper. Rien de bien grave là, surtout si on gagne en clarté, performance, fonctionalité, beauté (oui oui, Symfony2, c’est beau!!), règles de l’art…
  • Pour tester: Chrome et firefox l’affaire (en redimensionnant la fenêtre), mais j’ai aussi utilisé le iPhone Simulator qui vient avec xcode (sur Mac uniquement)
  • j’ai utilisé Apache et mySQL installé via macPorts: fini pour moi MAMP, j’ai plus de contrôle avec MacPorts, notamment pour installer des extensions php.

7 thoughts on “jQuery mobile, Symfony2, Doctrine 2 et autres tests…

  1. Bonjour,

    Dans ta partie reste à tester tu parles du comportement jQuery Mobile et son comportement avec Google Analytics …

    Je suis preneur d’informations concernant ce point vu que dès qu’il y a remplacement automatique des lien par des call Ajax, ces liens ne sont pas pris en comptes, donc les statistiques récoltées sont totalement faussées …

    Affaire à suivre donc …

  2. Bon je vais essayer sur un site en pré-production voir ce que ça donne …

    J’essayerai de te faire un retour pour savoir si ça fonctionne mieux après.

  3. Pour configurer Doctrine en utf-8 sans passer par une requete ‘set names’, il semble que de definir « charset: UTF8 » marche, comme suit:


    # config.yml
    doctrine:
    dbal:
    driver: %database_driver%
    host: %database_host%
    dbname: %database_name%
    user: %database_user%
    password: %database_password%
    charset: UTF8

  4. Merci Chris pour l’ajout. J’avais eu le problème sur une version alpha de Symfony2. Heureux d’apprendre que c’est maintenant possible facilement (quoique ce l’était peut-être déjà « à l’époque »…)

  5. Je n’ai pas spécifiquement travailler avec des forms en utilisant JQuery Mobile et Symfony2, mais je ne pense pas qu’il devrait y avoir de problèmes si tu suis les indications de cette page: http://jquerymobile.com/test/docs/forms/forms-sample.html

    Pour résumer:
    – l’envoi des formulaires via ajax est le comportement par défaut (utilise data-ajax= »false » si tu souhaites un comportement différent ou effectuer ton propre call ajax)
    – d’après l’exemple ajax, la réponse Ajax est une page HTML complète JQuery mobile (avec tag html, body, et

    ), mais peut-être que cela fonctionne avec seulement un fragment (juste
    )?

    Aussi, voici un lien vers quelques tutoriels jQuery Mobile: http://www.jqmgallery.com/jquery-mobile-tutorials/ . Il ne sont pas tous récents, mais cela devrait t’aider j’espère.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *