phpJaz, un framework léger pour PHP

Posté par  (site Web personnel) . Modéré par Jaimé Ragnagna.
Étiquettes :
1
9
jan.
2005
PHP
Jaz (ou phpJaz) est un framework léger (cadre de travail) pour le développement d'applications PHP. C'est un ensemble de classes et de fonctions, qui permet de mieux structurer son code, de contrôler strictement les flux de travail et de données de ses applications afin d'avoir une maîtrise complète sur leur déroulement.

Actuellement Jaz est en version beta. Je recherche d'une part des programmeurs motivés pour tester ce framework (en programmant des applications petites ou grandes), et d'autre part des personnes sensibilisées par la sécurité pour analyser le code et "prouver" l'intégrité du framework.

Une démonstration technique est disponible, ainsi que 3 exemples d'applications utilisant Jaz.

Aller plus loin

  • # Survol

    Posté par  (site Web personnel) . Évalué à 7.

    Bonjour,
    je n'ai fait qu'un rapide survol du code mais j'ai quand même plusieurs remarques:
    - on est passé à PHP5 depuis déjà quelques temps et il aurait été agréable de trouver du code compatible.
    - tu utilises à mon avis un peu trop l'arobase pour masquer les éventuelles erreurs plutôt que de les traiter
    - les balises PHP sont <?php et ?> et non pas <? et ?>.

    Je teste dès que j'ai un moment.
    • [^] # Re: Survol

      Posté par  . Évalué à -1.

      Pourquoi <?php ?> à la place de <? ?> ?
      S'il existe les deux, c'est que chacun a le droit de choisir la forme qu'il préfère, non ?

      Personellement, je trouve <? ?> plus court et élégant.

      Est-ce qu'utiliser la version "courte" pause des problèmes de sécurité ou... ?
      Sinon, je pense qu'il y a une option dans PHP pour désactiver la version courte. À quoi ça sert d'avoir une option pour si peu ?
      • [^] # Re: Survol

        Posté par  . Évalué à 6.

        Parce que la version "<? ... ?>" pose des problemes de compatibilité avec XML, alors que "<?php ... ?>" a la forme (ça n'en est pas une) d'un instruction de traitement (Processing Instruction, alias PI), ce qui ne pose pas de problèmes aux analyseurs XML si l'on prends un peu garde.

        Par ailleurs, justement parce que certains serveurs sont configurés avec l'options "balise" longue uniquement, tes balises courtes ne marcheront alors pas forcement. Tu risque donc d'avoir des problèmes de compatiblité avec ces serveurs là (sur lesquels les utilisateurs ne pourront pas forcément changer la valeur de l'option...). L'inverse ne pose pas de problemes, la version longue passe partout.
      • [^] # Re: Survol

        Posté par  . Évalué à 6.

        Un petit lien pour aller dans le sens des Nicolas:
        http://frederic.bouchery.free.fr/?2004/07/16/4-Pourquoi-Il-Ne-Faut-(...)

        Si vous n'aimez pas ce commentaire c'est qu'il est ironique.

    • [^] # Re: Survol

      Posté par  (site Web personnel) . Évalué à 1.

      Bonjour,

      Merci pour tes remarques et ta visite.

      Concernant PHP5, j'attends encore un peu. C'est clair qu'il permettra d'aller plus loin avec moins de bidouilles sur certains points. Mais ça sera plus une clarification du code du moteur qu'une adapation de l'api actuelle. Pas de changement côté appli.

      L'arobase est souvent utilisé pour raisons techniques, par exemple dans la config de la plateforme (l'@ évite au define du système de réagir, lorsque le codeur a déjà fixé une valeur). Je mets dans ma todo de vérifier s'il y a des abus :)

      Pour le <?php, je l'ai ajouté dans ma version cvs à la nouvelle année, avec les changements de dates de l'entête (pour les raisons évoquées dans le commentaire de short_open_tag)

      Hésite pas à poster dans le forum, ça fait tjs avancer ! http://phpjaz.org/forums/(...)

      @+
      jej
  • # about

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

    salut
    t'a commencé le projet ya longtemps ?
    à quelle occasion ?

    à première vue, ca m'a l'air intéréssant, j'vais l'installer et voir ce qu'on peut faire avec (mais je promet rien ! )
    • [^] # Re: about

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

      salut,

      J'ai commencé en 99, à force d'avoir toujours les mêmes problèmes d'organisation de mes applis. C'était des applis dédiées, genre Citim, il fallait toujours réinventer les mêmes choses. Genre se coder son système de session, c'était pas encore par défaut. A force on a envie de "factoriser" !

      bon tests, @+
      jej
  • # PEAR

    Posté par  (site Web personnel) . Évalué à 4.

    on a du te la faire déjà, mais peux tu expliquer ton rapport avec PEAR. Les différences, les croisements, les liens, etc.

    Merci
    • [^] # Re: PEAR

      Posté par  (site Web personnel) . Évalué à 1.

      désolé, pas assez de recul sur PEAR... pas concurrents en tout cas.
    • [^] # Re: PEAR

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

      pear n'est qu'un ensemble de bibliothèque. Il ne te force pas à structurer ton code.

      Tout comme Copix <pub>http://copix.org</pub> , phpJaz te force à structurer ton code d'une certaine manière, à organiser tes sources d'une certaine manière.

      bref, ce sont de véritables frameworks, ce que n'est pas Pear.
      • [^] # Re: PEAR

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

        En gros, Jaz peu utiliser PEAR, mais utiliser Jaz rend inutilie l'utilisation directe de PEAR, C'est à Jaz de le faire. J'ai compris ?
        • [^] # Re: PEAR

          Posté par  (site Web personnel) . Évalué à 1.

          PEAR est un ensemble de "fonctions", et comme dit Laurent J ça ne structure pas du code mais des méthodes/propriétés au sein d'une appli. Jaz et PEAR seraient plutôt complémentaires. Par exemple, pour coder un webmail c'est pas jaz qui va attaquer IMAP, il permettra seulement de gérer l'enchaînement des pages (côté visible) et le découpage du code (côté coder).

          Jaz double PEAR sur certains points, comme l'authentification et les bases. C'est assez sommaire dans jaz mais c'est bien intégré. Rien n'empêche de créer des gestionnaires jaz qui utilisent PEAR::DB et PEAR::Auth.

          Si quelqu'un se lance dans du jaz+PEAR, je veux bien des retours (dans le forum, svp)
        • [^] # Re: PEAR

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

          J'ai compris ?


          Non.

          Jaz (ou copix) et Pear sont deux choses différentes.

          Le premier t'offre une manière de structurer ton code, s'occupe de la coordination de ton appli et d'autres choses, le deuxième n'est qu'une boîte à outils à utiliser lors des différentes actions (que tu dois coder...).

          Ils sont complémentaires. De plus, Jaz utilise trés certainement Pear pour son fonctionnement interne. Cela ne te dispense pas d'appeler des objets de Pear quand tu en as besoin.
  • # navigation par tab

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

    Je ne sais pas si c'est du au framework, mais je suis totalement incapable de naviguer par onglet sur le site du framework.
    quand je vais sur une page et que je clique sur les différents liens avec le bouton du milieu, je me retrouve avec plusieurs fois la même page.

    Pire : je copie un lien dans le presse papier, je clique sur un second. Quand je réutilise le premier : je retombe sur la seconde page (et pas celle que je voulais).

    Bref, ça casse les onglets et la navigation en multifenetre, ça casse les favoris/bookmark .... Il va je pense falloir revoir au moins cet aspect du framework avant que ce soit utilisable.
    • [^] # Re: navigation par tab

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

      Je trouve que c'est même un gros inconvénient du truc.
      on ne peut pas mettre une URL précise dans ses bookmark, où la filer à quelqu'un d'autre.

      C'est du au fait que les URL contiennent en fait, si j'ai bien compris, un numéro autoincrémenté, qui n'est valable que une seule fois et qui perd sa validité dés que on clic sur un autre lien.

      Pire, si on se trompe de lien, et qu'on clic sur le boutton retour du navigateur, les autres liens ne fonctionnent plus.

      C'est très dommage car ça pose de gros problèmes d'accessibilités
      • [^] # Re: navigation par tab

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

        Comme l'explique très bien Jerome dans sa documentation (p15 plus precisement), il est normal qu'on ne puisse pas "bookmarker" n'importe quel page car il ne faut plus retenir le concept de "site" mais d'"application".

        Est ce que quand tu lances Writer tu peux faire un lien pour qu'il arrive sur la page de mise en page des paragraphes par exemple? Peut etre que oui mais a quoi ca servirait?

        En tous les cas je trouve que le travail de Jerome (pour l'instant au niveau de la documentation, de l'approche, de la rigueur du site, du forum (je n'ai pas encore regardé le code)) merite un coup de chapeau.

        Donc "chapeau Jerome ;)"
        • [^] # Re: navigation par tab

          Posté par  (site Web personnel) . Évalué à 1.

          Merci pour cet eclaircissement (c'est sympa d'avoir lu la doc :)

          @+
          jej
        • [^] # Re: navigation par tab

          Posté par  (site Web personnel) . Évalué à 0.

          C'est une très bonne raison au niveau programmeur/concepteur, une très mauvaise au niveau visiteur/client. Le client tu ne lui diras pas "c'est une application", pour lui c'est un média Web, il est visualisable avec une application qu'il connait, il s'attendra à pouvoir l'utiliser comme il a l'habitude.
          C'est d'autant plus vrai quand le site qui est derrière est vraiment un site documentaire et pas une application du point de vue utilisateur (comme celui de phpjaz justement).

          > Est ce que quand tu lances Writer tu peux faire un lien pour qu'il
          > arrive sur la page de mise en page des paragraphes par exemple?
          > Peut etre que oui mais a quoi ca servirait?

          Le fait est que moi j'ai voulu naivement utiliser les fonctionnalités de mon navigateur et que j'ai été perturbé bien 5 minutes avant de comprendre pourquoi (pourtant je me considère comme largement "avancé" dans le domaine Web, je n'ose penser à l'utilisateur de base qui n'y comprendra rien).

          Désolé mais que le développeur considère avoir une application et pas un site de publication, le résultat est le même pour le visiteur et du coup ce genre de solution me parait vraiment hors de question, sauf pour quelques trucs internes très spécifiques et encadrés.
          • [^] # Re: navigation par tab

            Posté par  (site Web personnel) . Évalué à 1.

            En fait, en lisant la doc on peut voir que jaz gère des liens "static", c'est à dire à validité permanante, qui peuvent être appelés par le client quelque-soit le contexte de l'application. Donc c'est bookmarkable, le retour/refresh marchent sur ces liens. La seule différence, c'est que le codeur est au courrant de 2 choses :

            - le flux de travail est interrompu, à lui de savoir si c'est compromettant pour son appli, donc d'autoriser ou refuser l'action du client.
            - le flux de données vient de l'extérieur (les arguments du lien), donc n'est pas garanti et doit être testé.

            Les liens classiques de jaz garantissent la chonologie et l'intégrité des données.

            Concernant le retour et les habitudes des utilisateurs je suis d'accord (à condition que tous les sites qui les autorisent puissent garantir l'intégrité de la navigation, ce qui n'est pas le cas). parfois, le programmeur a besoin de certitudes quand les données manipulées sont sensibles. Jaz permet de spécifier des actions à entreprendre en cas de retour ou reload de la page. Là encore, le but est de conscientiser le programmeur. Il doit autoriser intentionnellement le retour dans son code, sinon ce n'est pas permis. La demo montre cela. Sinon, rien n'empêche de mixer du jaz avec du nom jaz au sein d'un même site.

            Hésitez pas à migrer ces discussions vers le forum de jaz. Content que ça fasse réagir.
            • [^] # Re: navigation par tab

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

              Si je puis me permettre alors :
              - ne pas mettre la documentation sur ce format
              - ne pas mettre les pages "documentaires" sur ce format

              Je sais que ça fait démo mais ça en réduit largement les possibilités d'utilisation et l'accessibilité globale. S'il n'y avait pas eu les commentaires ici ça aurait été poubelle direct
  • # Jaz c'est libre?

    Posté par  . Évalué à 2.

    Salut

    Moi je m'interroge sur le choix du nom de ce framework : est-il vraiment libre d'utilisation? Parce que "iomega jaz" est suivi d'un TM et "jaz" tout court est lui suivi d'un R sur le site de Iomega.

    Notez que je n'y connais pas grand chose dans le domaine.
    • [^] # Re: Jaz c'est libre?

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

      aïeee, je savais pas que ça existait encore les lecteurs jaz... j'espère qu'ils vont pas me coller un procès (surtout qu'ils utilisent un framework java sur le site, j'peux même pas leur fourguer mon jaz).

      Comme j'y connais pas grand chose non plus en licences, j'ai suivi les consignes de la fsf, donc c'est GPL. Y-a-t-il un pro du libre qui peut nous dire si une appli codées sur un framework GPL peut être non GPL ? probablement mais bon, c'est tellement compliqué ces choses...

      @+
      jej
      • [^] # Re: Jaz c'est libre?

        Posté par  . Évalué à 1.

        Une appli dévellopée avec un framework GPL, est considérée comme liée à du code GPL donc doit être GPL aussi.

        C'est pour cela que la FSF et RMS ont créé la license LGPL qui permet à une librairie d'être liée avec un programme non-GPL.
        • [^] # Re: Jaz c'est libre?

          Posté par  (site Web personnel) . Évalué à 1.

          Merci pour cette précision. Vu que jaz a besoins de contribs et d'applis , ça restera GPL pour l'instant.
          • [^] # Re: Jaz c'est libre?

            Posté par  . Évalué à 1.

            Par contre, je ne pense pas que tu puisses reprendre le "PHP" dans le nom de ton appli.

            http://www.nexen.net/news/gen.php/2004/03/06/3822,0,0,0,0.php
            • [^] # Re: Jaz c'est libre?

              Posté par  (site Web personnel) . Évalué à 1.

              oui, j'avais lu ça à l'époque. "JAZ" est le nom officiel, mais jaz.org|.com|.net etc sont déjà pris.

              Je comprends l'argument de Rasmus. Maintenant que PHP est devenu populaire, grace à quelques bonnes vieilles phpApplications, faut pas venir entâcher le nom de la sous-couche. Mais faut pas cracher dans la soupe non plus... C'est pas le modèle objet de PHP qui l'a rendu célèbre !

              Pour l'instant ça reste "jaz" et phpJaz.org pour le site. Mais à terme pourquoi pas prévoir de changer (de sous-couche aussi...).
            • [^] # Re: Jaz c'est libre?

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

              > Par contre, je ne pense pas que tu puisses reprendre le "PHP" dans le nom de ton appli.

              Si, les seuls projets concernés sont ceux qui réutilisent du code de PHP lui-même, du moteur.
              Tu n'as pas besoin d'accepter la licence de PHP pour faire un soft PHP, donc tu n'as pas besoin d'accepter cette clause ni de la respecter.

              Moi ça me donne de plus l'impression d'essayer de contrôler un nom qui ne leur appartient pas, ce qui n'est pas très correct.
          • [^] # Re: Jaz c'est libre?

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

            "Pour l'instant" ?

            Si ton but est d'avoir des contribs, comprend bien qu'une fois les contrib reçues tu ne pourras probablement plus changer la licence (il faudrait l'accord de tous les contributeurs sans exception, et en général c'est dur à obtenir, au moins parce qu'on n'arrive pas à contacter tout le monde).
  • # Evaluation des differents frameworks pour PHP ?

    Posté par  . Évalué à 1.

    Justement je me posais la question sur l'utilisation d'un framework pour coder des applis en PHP. J'aimerai faire le point des solutions possibles (comme celle ci).

    Est-ce que quelqu'un peux me donner des references sur les differentes solutions possible pour du code en PHP ?
  • # Concurrents et positionnement

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

    Salut,

    Quels sont les autres projets similaires a PhpJaz ? (s'il y en a), et comment PhpJaz se positionne-t-il par rapport a eux ?

    Merci
    Yann.
    • [^] # Re: Concurrents et positionnement

      Posté par  (site Web personnel) . Évalué à 4.

      Tu as Copix. Il est plus lourd que jaz, mais offre beaucoup plus de features je pense (DAO en xml, système d'évènement, etc...), et a un fonctionnement différent.

      site officiel : http://copix.aston.fr(...)
      site communauté : http://www.copix.org(...)
      posez vos questions sur le forum http://forum.copix.org(...)

      Une version 2.2 devrait sortir ce mois-ci si on n'est pas trop débordé...
      Une version 2.3 dans quelques semaines/mois devrait terminer la phase "xmlisation" (la plupart des sources, des configs etc seront stockés en XML, avec générateur de code dérrière, et un IDE pour développer tout ça via un clickodrome)
      Une version 3 est prévue dans x mois, optimisée pour PHP5 (non, on ne fera pas de version compatible PHP4 et PHP5 à la fois, ce serait dommage de se passer des features de PHP5)

Suivre le flux des commentaires

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