Zend Framework 0.7.0

Posté par  . Modéré par Nÿco.
Étiquettes :
0
29
jan.
2007
PHP
Passé inaperçu, la communauté à l'origine du Zend Framework a publié son produit dans sa version 0.7.0 le 19 janvier 2007.

Le domaine principal de dévelopement de cette version est le support de la localisation et de l'internationalisation (basé sur gettext). Le reste du framework reçoit de nombreuses améliorations mineures et corrections de bogues.

Zend Framework est un projet intéressant à plus d'un titre. Alors que les framework Java, python et ruby sont reconnus dans le monde professionnel pour les gros sites, PHP garde une image très bricolage. En PHP, il y a foule de CMS, sorte de logiciel tout fait pour utilisateur lambda. Mais pour les professionnels du web, pour les sites d'entreprises et pour les développeurs qui ne se contentent pas d'un nième *Nuke, il n'y a rien de viable. Zend Technologies, à l'origine de PHP met ainsi en avant son langage, tout en se basant sur la communauté, le projet étant en licence PHP (type BSD).

Le but du Zend Framework est donc simple : fournir un système complet pour développer des applications web en PHP 5. On notera l'intégration dans le c½ur du framework des composants Zend_Locale, Zend_Session et Zend_Acl.

Zend propose au développeur PHP un framework étendu, optimisé et flexible. Il implémente le concept MVC tout en garantissant au développeur la possibilité d'utiliser le moteur de rendu de son choix (Zend propose Zend_View, un moteur de template utilisant PHP comme langage). Le développeur peut aisément implémenter son propre "routeur" qui va déterminer quel contrôleur doit répondre à la requête. PDO est conseillé, mais pas obligatoire du tout, etc.

Le Zend Framework contient aussi foule de classes pratiques tel Zend_Pdf pour la génération de PDF, Zend_Mail pour l'envoi de courriel, Zend_Feed pour générer des RSS… Il y a même Zend_Gdata, un class cliente de l'API Google Data (Blogger, Calendar, CodeSearch et SpreadSheet) ! Zend propose aussi des composant XML-RPC, Json qui semble de bonne base pour implémenter un framework Ajax, prévu pour l'avenir.

Le Zend Framework ne va pas à l'encontre de PEAR, mais s'inscrit dans la même lignée. Alors que PEAR semble plutôt un grand dépôt de classes, Zend propose réellement un cadre de conception et développement d'application.

Zend Framework est un logiciel libre. Cependant, on ne doit pas distribuer le projet modifié sous le nom de Zend Framework ou quoi que ce soit touchant à Zend. (Cf la FAQ licence). Il a été élu meilleure application de développement par phparch.com !

À tester et à diffuser.

Aller plus loin

  • # Rien de viable ?

    Posté par  . Évalué à 10.

    En PHP, il y a foule de CMS, sorte de logiciel tout fait pour utilisateur lambda. Mais pour les professionnels du web, pour les sites d'entreprises et pour les développeurs qui ne se contentent pas d'un nième *Nuke, il n'y a rien de viable.


    Je trouve cette assertion un peu cavalière et tout à fait injustifiée.

    Je ne connais pas le framework de Zend. Sans doute est-il trés bien, mais là n'est pas la question. Ni les professionnels du web ni les sites d'entreprises ni même les développeurs exigeant ne nécessitent forcément de construire des sites usine à gaz.

    Il existe d'innombrables CMS, certains sont d'une excellente qualité et permettent de créer de trés bon sites. Dire qu'il n'existe "rien de viable", ça sent un peu la publicité mensongère.
    • [^] # Re: Rien de viable ?

      Posté par  (site web personnel, Mastodon) . Évalué à 9.

      Oui, ça fait aussi pub racolleuse. Genre, le Zend framework est le framework qui va sauver le monde PHP.

      Alors qu'il existe d'autres frameworks, pour certains depuis des années, au moins d'aussi bonne qualité, et utilisé dans de nombreuses applications professionnelles (intranet ou internet).
    • [^] # Commentaire supprimé

      Posté par  . Évalué à 9.

      Ce commentaire a été supprimé par l’équipe de modération.

      • [^] # Re: Rien de viable ?

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        Le moteur de template de jelix, coercitif ? Je ne comprend pas.. Y a pas plus simple comme moteur de template. Tu peux développer ?

        Idem pour jelix en général ?
        • [^] # Commentaire supprimé

          Posté par  . Évalué à 4.

          Ce commentaire a été supprimé par l’équipe de modération.

          • [^] # Re: Rien de viable ?

            Posté par  (site web personnel, Mastodon) . Évalué à 4.

            et alors ?

            dans un template, ce sont principalement des echos et boucle que l'on fait. Personnellement, ça me fait vraiment suer de faire des < ?php echo $foo ;? > dans tous les sens. Vu la simplicité du code d'un template, je prefère avoir une autre syntaxe moins contraignante à écrire, comme dans smarty/jtpl : {$foo}

            Quitte à ce que le moteur de template traduise le template en fichier php, et mette ça en cache pour des raisons de performances. (ce qui, au final, revient au même qu'un simple fichier php, puisqu'il y a juste un include du cache à faire).

            Si par coersitif, tu penses à "je ne peux pas tout faire dans un template", eh bien je te repond, c'est normal, c'est le but, ça oblige le codeur à coder proprement : pas de code metier dans le template, découpage de l'application en "couche", pour des évolutions plus faciles, une maintenance plus facile, même pour des non connaisseurs de l'appli (mais qui connaissent le framework). Avec un système de template comme celui de Zend, rien ne m'empeche finalement de faire dans le template des requetes sql, appeler n'importe quel objet ou autre.

            Le but d'un framework, c'est de proposer un "cadre". Si il n'y a pas un minimum de contraintes à l'image de celle que je viens d'évoquer, alors je ne vois pas en quoi le framework est utile, si ce n'est qu'être finalement qu'une simple bibliothèque de composant. Là à priori, pour la couche "presentation" du zend framework, pas de contrainte, donc pas de cadre, donc interet limité selon moi.
            • [^] # Re: Rien de viable ?

              Posté par  (site web personnel) . Évalué à 2.

              Personnellement, je préfère PHPTAL, et implémenter une "view" dans le ZenFrameWork d'un moteur de template dont on est habitué est relativement simple (les méthodes clearVars() et __unset() mises à part pour le cas de PHPTAL).

              Et, je trouve cela toujours impressionnant qu'en ne changeant qu'une ligne de code on puisse passer de Smarty à Phptal ou Php (comme template) sans toucher une ligne du code de base (en utilisant le mvc de la bibliothèque).
              • [^] # Re: Rien de viable ?

                Posté par  . Évalué à 1.

                Tu prends les autres frameworks, cela se fait par la config sans toucher une ligne de code.

                Tu prends copix, tu peux même mélanger les moteurs de rendu.

                Mais bon un code factorisé te permet naturellement de faire cela.
            • [^] # Re: Rien de viable ?

              Posté par  . Évalué à 3.

              à la rigueur, au lieu de :

              <?php echo $foo; ?>

              tu peux écrire :

              <?= $foo; ?>

              c'est déjà beaucoup moins long

              En ce qui concerne les conditions :

              <? if ($toto): ?>
              blah
              <? else: ?>
              blahblah
              <? endif; ?>

              fonctionne très bien aussi ...
            • [^] # Commentaire supprimé

              Posté par  . Évalué à 2.

              Ce commentaire a été supprimé par l’équipe de modération.

              • [^] # Re: Rien de viable ?

                Posté par  (site web personnel) . Évalué à 2.

                Bah, smarty dont il parle a ça, de manière très simple : {$foo|escape}

                Bref, des moteurs de templates il y en a des dizaines, et aucun n'a inventé quoi que ce soit. Il y a déjà plus simple ou plus complet que le Zend, comme l'inverse. Franchement, de ce côté là (comme des autres du framework), Zend n'a rien révolutionné. Si tu découvres c'est que tu ne connais pas suffisament l'existant dans les framework PHP
                • [^] # Commentaire supprimé

                  Posté par  . Évalué à 2.

                  Ce commentaire a été supprimé par l’équipe de modération.

                  • [^] # Re: Rien de viable ?

                    Posté par  (site web personnel) . Évalué à 3.

                    Ben non, pas plus de ressources puisque tout ça est justement compilé en PHP. C'est ce que je parlais quand je parlais de connaissance de l'existant. A l'exécution Smarty c'est du pur PHP.

                    Reste que ça créé un nouveau langage, c'est vrai. Mais ce langage n'est pas si complexe que ça. Il est en tout cas bien plus adapté à la production HTML de par sa concision et parce qu'il n'utilise pas < et >.
                    Regardes la différence entre <a href="<?php echo htmlspecialchars($root . "/index.html") ; ?>">) et <a href="{$roo|escape}/index;html">
                    Rien que la fin du PHP avec le >"> je peux te dire que ça en perturbe plus d'un quand je donne des formations. On peu s'habituer mais ça reste très lourd et la meilleure manière d'oublier une fin de balise HTML.
                    Même chose quand tu édites le tout avec un outil graphique (ce que font encore la plupart) ou que tu donnes à rédiger les templates par un non développeur (qui connait probablement PHP mais qui pourrait avoir envie de faire des bétises autres que de la présentation si tu le laisses faire). Bref, il y a plus d'une raison pour un nouveau langage, et en général, par expérience, c'est loin d'être le coté gênant.

                    Bref, on ne va pas refaire le monde, je comprend tout à fait l'utilisation de vue en pur PHP et j'en fais en réalité souvent par pure flemme. Mais de là à trouver le ZendView nouveau par rapport à l'existant ou à affirmer que le reste fait usine à gaz ...
                    • [^] # Commentaire supprimé

                      Posté par  . Évalué à 2.

                      Ce commentaire a été supprimé par l’équipe de modération.

      • [^] # Re: Rien de viable ?

        Posté par  . Évalué à 3.

        Des frameworks de qualité pour PHP il commence à y en avoir, il faut juste ne pas généraliser à partir d'un seul. Seulement PHP continue de véhiculer une image cheap par ses origines de petits scripts vite fait (mal fait) du coup ils n'ont pas toute l'attention qu'ils méritent. On préfère les JSP, c'est plus rassurant, plus professionnel.

        Pourtant PHP5 est vraiment bon. Ses performances sont largement au dessus de celles de Ruby par exemple. Le problème des frameworks PHP c'est qu'ils sont presque tous à la sauce RoR et qu'ils font un maximum de choses sans penser aux performances et à la simplicité du code du framework lui-même. C'est le cas de CakePHP[1] par exemple. Il est complet, stable et a une grande communauté derrière lui, mais le code est trop compliqué et ses performances sont égales à celles de RoR. Autant profiter des avantages de Ruby dans ce cas.

        Mais dire que tous les frameworks PHP sont des usines à gaz, c'est un peu fort. CodeIgniter[2] me semble léger et élégant dans sa conception. J'en ai aussi programmé un dont les performances sont tout à fait honorables : FeatherPHP[3]. Malheureusement je n'ai pas encore eu (ni pris) le temps d'écrire la documentation et le site web correspondant -- il est à peu près stable et plutôt complet, mais n'a que 2 mois d'existence ;)

        À noter que si Ruby on Rails est si demandé, c'est grâce à 37signals (son concepteur), qui a construit toute une gamme de sites professionnels de qualité dessus. Du coup tout le monde veut son site web avec RoR aujourd'hui.

        PS : http://www.php.net/manual/fr/language.oop5.php et http://www.php.net/manual/fr/migration5.php permettent de bien comprendre et maitriser tous les trucs ajoutés dans PHP5.

        [1] http://cakephp.org
        [2] http://codeigniter.org
        [3] http://code.google.com/p/featherphp
        [4] http://37signals.com
        • [^] # Re: Rien de viable ?

          Posté par  (site web personnel) . Évalué à 3.

          Il y a plein de framework Web en PHP, qui n'ont rien à voir avec Ror, voire qui sont sortis avant. D'ailleurs j'attends toujours le framework "comme Ror" en PHP, la plupart en sont très très loin et sont que des MVC avec une brique AR plus ou moins correcte. Je ne les en blame pas d'ailleurs, le coeur de RoR est surtout là grace à la syntaxe Ruby.
          Il y a largement de quoi faire des choses bien dans le style PHP, pas besoin de copier un autre langage qui n'a pas les mêmes possibilités.
      • [^] # Re: Rien de viable ?

        Posté par  (site web personnel) . Évalué à 6.

        Le tampon Zend une garantie ? Zend le créateur de PHP ?
        Euh ... jocker, on va passer la dessus pour ne pas passer au troll.

        Juste un exemple parmi d'autres, pendant les semaines (mois ?) où on avait l'annonce du framework mais aucun code public, on a eu droit à des superbes slides montrant des exemples de code "fonctionnant avec le framework" qui n'avaient aucune chance de fonctionner. Je ne parle pas de bêtes erreurs de recopies ou de syntaxe mais bien de concepts d'architecture qui ne pouvaient pas fonctionner en PHP. Et au temps pour la crédibilité du tampon Zend.



        Mais pour les frameworks, le problème de PHP c'est plus la profusion que le manque. D'ailleurs le but officiel du Zend framework est plus lié à des questions de garantie sur la propriété intellectuelle que de contenu du framework lui même. (l'officieuse étant probablement de justement mettre le tampon Zend partout)


        Et dans ce que je vais dire il n'y a aucun jugement de valeur ni de critique sur les compétences, mais au niveau fait, que tu découvres le typage de paramètre PHP 5 m'incite à penser que tu as un aperçu très limité de l'écosystème PHP, certainement trop limité pour aller faire des grandes déclarations sur le manque de framework "non usine à gaz".


        Après c'est sur que le Zend Framework a de gros avantages. Le majeur est certainement la lisibilité et la simplicité de certains codes sources. Vois y simplement le fait que Zend est bien plus limité que certains autres, non complets, et arrive en tout dernier imposant PHP 5.2 (alors que la plupart des autres ont une base de compatibilité bien plus large qu'ils sont obligés d'assumer).
        Un petit exemple ? j'ai un développeur qui a bossé avec Oracle, mais dans la 0.6 leur driver AR Oracle ne savait pas lister les colonnes, donc ne fonctionnait pas. Un truc jeune, neuf, incomplet et imposant des dépendances ultrarécentes est forcément un peu plus clair et un peu moins fouilli. On verra avec l'age pour le reste.
  • # framework ?

    Posté par  . Évalué à 5.

    A la base Zend n'a rien d'un framework, c'est un ensemble de librairie, exemple :
    MVC : c'est une extension, il ne fait pas partie des specs.

    Un framework ce n'est pas un ensemble de fonction, çà c'est une librairie.
    Un framework impose une norme de développement, dans la façon de coder, de conduire le projet, et d'assurer le support du produit tout le long de son cycle de vie.

    Donc un framework impose en général le mvc ou un autre modèle. Un système qui n'a pas d'architecture précise, ne normalise pas. Faut pas confondre faire des couches applicatives et créer un framework.
  • # +1 pour le ZF

    Posté par  . Évalué à 3.

    je l'utilise quotidiennement, pour développer une future appli, et il est agréable à utiliser. J'apprécie particulièrement la souplesse du MVC, et l'interfassage avec la BD.

    Zend_config , Zend_Mail, Zend_Locale/Translate/.. sont aussi très pratique.

    je ne pense pas que le ZF soit le meilleur des frameworks PHP, je pense surtout que c'est le plus prometteur en terme d'adoption. Le fait de pouvoir l'utiliser comme une librairie ou comme un framework est aussi un atout à mes yeux. Cela permet de l'intégrer progressivement dans un code existant.
  • # Rien de viable ? Et typo3!

    Posté par  . Évalué à 1.

    Il existe un CMS plus que viable, hyper puissant, mature, GNU écrit en et pour PHP: Typo3.... C'est LE cms PHP... Je l'utilise comme des milliers d'autres personnes... Je pense qu'il fallait le rapeller ici.
    • [^] # Re: Rien de viable ? Et typo3!

      Posté par  . Évalué à 1.

      Pas la même chose.... et puis c'est une putain d'usine qd même.

      Ca me fait penser que j'ai été moi même obliger de coder mon propre framework parce que l'utilisation des Symphony et CakePHP ne m'allaient pas vraiment (j'ai autre chose à faire que de passer 10 minutes à coder 3 pages juste pour faire un "Hello Word"). Du coup mon code ne pèse pas plus de 1500 lignes de code et je n'utilise pas de moteur de template barbare pour faire ce que PHP sait faire...

      Ca me rappelle une vanne : "il y a autant de CMS que de codeur PHP"... On va pouvoir la décliner bientôt en : "il y a autant de FrameWork que de codeur PHP".

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.