• [^] # Re: Ou alors on peut utiliser symfony ...

    Posté par . En réponse au journal Mise à disposition de mes outils pour générer du code PHP. Évalué à 2.

    J'ai aussi testé symfony et c'est impressionnant.

    On entre dans un monde réel objet en PHP et ça c'est super. Je ne détaillerai pas toutes les avancées mais ça permet plein de choses (interfaces, variables statiques etc...)

    Symfony est en fait un framework regroupant plusieurs librairies déjà existantes, mais de manière intégrée :
    - Propel/Creole pour l'object-relationnal mapper
    - Mojavi pour la partie MVC
    - Scriptaculous pour tout l'AJAX

    Un premier écran d'application se configure en deux commandes et chaque nouveau module en une seule commande.

    Pour répondre à tes différents points :

    - Pour les critères, Propel/Creole utilise un object Criteria auquel tu ajoutes tout ce que tu veux (jointure sur autres table, tri etc...). Je pense que tu trouveras tout ce que tu veux là comme critères avec ça. En fait on passe l'objet Criteria à la requête doSelect de l'OMPeer et on récupère un tableau d'objets (comme des Beans).

    - YAML ne nécessite quasiment pas d'apprentissage, c'est comme du XML en beaucoup moins verbeux (peut être moins puissant aussi, mais pour de la conf ça suffit amplement)

    - Quand on utilise $this->getRequest()->getParameter('id'), cela récupère le paramètre id de l'application. Dans la plupart des cas cela correspond à la valeur passée dans l'url mais pas forcément : un fichier de conf permet de mapper les smart_url sur des noms de variables. De plus le fait d'utiliser les balises link_to dans les templates transforme automatiquement les url pour que tout fonctionne bien.

    - concernant les détails des url, le fichier routing.yml permet justement de faire tout ce que tu veux au niveau du routage de ton front controller. Il est vrai que cela impose mod_rewrite du coup, mais il me semble que c'est configurable. L'avantage c'est que c'est traité à un haut niveau dans le framework et que du coup c'est modifiable...


    Après, il est vrai qu'on est bien avec ses outils, j'ai aussi fais les miens... J'ai testé symfony il y a une semaine (c'est pour dire que c'est frais) et j'ai été vraiment impressionné. Il y a peu ou pas de choses que l'on ne peut pas faire ou de situation où l'on soit bloquée. Il y a toujours un comportement par défaut que tu peux customiser à ta manière.

    De plus la documentation est d'un qualité et d'une intelligence rare. Leur "calendrier de l'avent" est un exemple pas à pas qui permet d'apréhender le framework à son rythme (théoriquement 24 jours) et présente bien tous les avantages de la méthode.

    La documentation sur le site en lui même est basée sur des Use-Cases très pertinents indexés par plusieurs mots-clés et si on veut plus de doc, on va voir sur les sites des librairies pour en avoir de meilleures (ya juste que phpdb.org était down ces derniers temps...)

    Le résultat est que du coup, je ne me charge que très peu des détails techniques de l'application et je me focalise sur les aspets métier et ergonomie. Les applications résultantes sont du coup de bien meilleure qualité. Code Less, Code better... J'ai peut être passé autant de temps à développer l'appli, mais je l'ai passé sur les aspets important et moins sur les détails techniques.

    Dommage que beaucoup de mes serveurs soient encore en php4 sinon je crois que je ferais migrer beaucoup d'appli sur ce framework.