Aller au contenu | Aller au menu | Aller à la recherche

jeudi, mars 20 2008

Peer-review et avancées dans Jelix

Quelques nouvelles de Jelix. Ce n'est pas parce que j'en parle moins en ce moment sur mon blog, que ça n'avance pas :-)

Lire la suite...

mercredi, mars 5 2008

Un exemple simple d'utilisation de jForms

J'ai écrit[1] un petit tutoriel qui montre un exemple simple sur l'utilisation de jForms, le système de formulaire de Jelix. J'ai repris le même exemple de formulaire que dans ce récent post sur un exemple simple d'utilisation de Zend_Form

Notes

[1] relu par des contributeurs, merci à eux

vendredi, février 15 2008

Version 1.0.2 du framework PHP Jelix

Parce que je n'aime pas laisser trainer des bugs trop longtemps dans des releases officielles, voici une nouvelle version de maintenance pour Jelix 1.0. Bon, rien de grave, elle corrige juste 8 bugs mineurs :-) C'est par ici que ça se passe.

Dans le même temps, les travaux sur la future version 1.1 avancent. J'ai finalement décidé d'inclure wymeditor dans jelix, pour avoir un éditeur HTML wysiwyg. Il est léger, respecte les standards, et surtout suffisamment petit pour que je puisse le hacker si besoin est sans trop de difficulté. Comme il repose sur jQuery, ce framework javascript sera donc intégré d'office dans Jelix. Et ça tombe bien, parce qu'il y a des plugins pour afficher des "datepickers" dans les formulaires, chose dont je vais avoir besoin dans jForms. Bien sûr, comme jForms est devenu extensible sur la partie génération de formulaire, ceux qui ne veulent pas de jquery et wymeditor, pourront se faire leur propre générateur qui reposerait sur les bibliothèques javascript de leur choix. Toutes contributions en ce sens sont la bienvenue !

D'ailleurs toutes contributions quelle qu'elles soient sont la bienvenue. Par exemple, j'aimerais bien avoir une meilleure présentation pour la présentation de la doc de réference. Les frames, c'est pas super top. Cependant phpdoc est assez complexe sur tout ce qui est personnalisation de templates et de la façon dont générer la doc, et donc je n'ai pas vraiment le temps pour le moment de me pencher dessus. Donc si il y a un volontaire dans la salle :-)

Mieux, si vous aimeriez réaliser un remplaçant de phpdoc, plus léger et plus facile à configurer, vous pouvez toujours contribuer à un projet que j'avais lancé il y a quelques mois, jphpdoc (il n'est pas basé sur jelix).

dimanche, janvier 27 2008

jForms devient extensible

Dés le départ, quand j'ai conçu l'architecture du système de formulaire jForms, dans Jelix, j'ai fait en sorte que chaque partie de jforms soit suffisamment bien séparée des autres, de manière à le faire évoluer le plus facilement possible. Par exemple, un des objectifs premiers était, à partir d'un unique fichier descriptif de formulaire en XML, de pouvoir générer un formulaire dans le format que l'on veut : HTML, XUL, XForms etc.. Ainsi donc, dans jForms il y a

  • un objet pour l'analyse du fichier XML jforms
  • un ensemble d'objet pour l'instanciation et la manipulation d'un formulaire coté serveur dans les contrôleurs,
  • d'autres pour la validation des données coté serveur,
  • et enfin un autre pour la génération finale d'un formulaire dans un format précis.

Dans Jelix 1.0.1, il n'y a qu'un format de sortie disponible, qui est du HTML que je qualifierai de "classique" (comprendre, pas de DHTML et ajax dans tout les sens), avec une génération de code javascript pour la validation coté client. On peut ajouter d'autres formats, mais il faut modifier quelques lignes dans le code même de jForms, ce qui n'est pas des plus pratique, malgré l'existence d'une documentation sur ce sujet pour les "hackers".

Ce temps est cependant révolu : je viens de passer deux petites heures à modifier légèrement jForms afin que les générateurs de sortie soient sous forme de plugins. Ainsi, plus besoin de modifier le code de jForms pour ajouter un nouveau format. Il suffit de faire une simple classe que l'on dépose dans un répertoire de plugin, de faire les plugins de templates qui vont avec et c'est tout. Bien entendu, rien ne change au niveau utilisation ;-)

Il est probable ainsi que l'on puisse, dans Jelix 1.1, générer un formulaire HTML utilisant extjs par ex, ou générer un formulaire en XUL (et plus tard un plugin pour générer un formulaire HTML5 ;-) .

Prochaines évolutions dans jforms : de belles balises comme <htmleditor>, <captcha>.. ;-)

lundi, janvier 21 2008

Jelix 1.0.1

Ce n'est pas parce que j'ai sorti une version majeure il y a 10 jours qu'il faut baisser le rythme. Alors voici une nouvelle version 1.0.1 qui corrige des bugs mineurs remontés par des utilisateurs, en plus d'une vulnérabilité dans phpMailer qu'utilise la classe jMailer de Jelix. Avec en bonus quelques petites améliorations aussi. Tous les détails ici.

jeudi, janvier 10 2008

Et hop, Jelix 1.0 !

Deux ans après l'annonce officielle du démarrage du projet, la version 1.0 du framework Jelix est enfin disponible. Je vous invite donc à l'essayer et à l'utiliser :-) Si il y en a parmi vous qui veulent propager la bonne nouvelle, ils peuvent réutiliser le communiqué de presse.

Quelques chiffres parce que j'aime bien les chiffres :

  • Je n'ai pas passé 2x365 soirées à le développer, à le débogguer, à répondre aux sollicitations des utilisateurs, à valider les patchs des contributeurs. Mais presque. Sans compter les heures que Disruptive Innovations me permet de passer sur le projet.
  • 732 commits dans le dépôt subversion
  • 293 tickets fermés dans le tracker, sans compter une soixantaine qui était dans le tracker sur berlios dans les débuts. Parmi ces 293, 54 tickets concernent des patchs fournis par des contributeurs (et intégrés dans Jelix).
  • plus de 120 tickets sur le total ont été ouvert par des contributeurs.
  • Il y a actuellement encore 117 tickets ouverts, pour la plupart concernant des améliorations et des nouvelles fonctionnalités (c'est dire si il y a encore du boulot :-)).
  • 1557 messages à ce jour dans le forum.

Bon, faut pas se leurrer, ce sont quand même des petits chiffres par rapport à d'autres projets :-). Mais on va voir comment ça va évoluer.

Merci à tout ceux qui ont aidé à faire aboutir Jelix 1.0 !


Trackbacks manuels :

jeudi, janvier 3 2008

Jelix 1.0RC2, incohérences de PHP...

J'ai sorti hier soir une deuxième version candidate pour Jelix 1.0, corrigeant quelques bugs. Les plus embêtants d'entre eux sont dû, non pas à Jelix à proprement parler, mais à des incohérences dans PHP.

Lire la suite...

mardi, décembre 18 2007

Sortie de Jelix 1.0RC1

J'ai le plaisir de vous annoncer la sortie d'une version candidate pour le framework PHP5 Jelix 1.0. Je vous encourage à la tester afin que la version 1.0 soit la plus robuste possible. Je pense sortir cette 1.0 au tout début Janvier. La documentation en français est bien fournie maintenant, mais la documentation en anglais laisse à désirer. Si il y a des volontaires dans la salle pour aider à la compléter, ce serait vraiment chouette :-)

Enjoy !

jeudi, décembre 13 2007

Contributions à Jelix

Depuis quelques semaines, j'ai des nouveaux contributeurs sur Jelix, et du coup, les patchs pleuvent ! Et plus la RC1 approche (prévues dans les jours à venir), plus y a des patchs qui sont soumis (la plupart sont des évolutions) et des tickets sont ouverts pour des bugs ou autres demandes d'évolutions.

Cette situation me rejouit particulièrement parce que ça montre que le projet intéresse de plus en plus de gens, et qu'aussi le projet évolue plus vite. C'est bien simple, j'ai certainement ces dernières semaines, passé autant de temps à faire de la review de code qu'à coder moi-même. Et c'est pas tout, quelques évolutions qui étaient prévues pour des versions ultérieures à la 1.0 ont finalement été faites pour la 1.0 grâce à quelques contributeurs !

Gros merci à tous les contributeurs !

lundi, décembre 3 2007

La ressemblance étrange entre Symfony 2.0 et Jelix...

Je viens de voir le fichier PDF de la présentation du futur Symfony 2.

Je trouve que l'architecture de SF2 ressemblera étrangement à celle de Jelix :

  • les objets "requests"
  • les objets "responses"
  • séparation des contrôleurs et des templates dans des répertoires respectifs (déjà dans SF 1.0)
  • le système évènementiel, même si il sera utilisé de façon plus poussé dans SF 2
  • le découplement total entre urls et contrôleurs, et aussi la syntaxe utilisée pour le mapping des urls

<humour_trollesque> Manque plus qu'un système de modules pour avoir un clone de Jelix :-) (ouai j'exagère :-) ) Enfin bref, SF2 va presque offrir ce que vous offre Jelix depuis 2 ans. </humour_trollesque>

Si SF2 vous fait baver, essayez Jelix ;-)

Mise à jour: j'ai rajouté les tags humour parce que visiblement ça n'était pas évident pour tout le monde :-)

Ne pas utiliser Xdebug pour faire des benchs

C'est en substance la conclusion que je me suis fait quand j'ai refait quelques tests de mon bench sur les ORM sans utiliser xdebug, et surtout sans activer xdebug dans le php.ini. En effet code34, l'auteur de PhpMyObject, avait trouvé des résultats complètement incohérents par rapport à ce que j'avais trouvé. Du style, il avait une très faible différence entre jDao et PMO sur certains tests, donc avec un facteur proche de 1, là où j'avais un facteur d'au moins 2 (c'est à dire, PMO deux fois plus lent que jDao). J'ai cru au début que le fait d'avoir un processeur à deux coeurs pouvait modifier ces résultats (sans trop y croire, vu que PHP et le multithreading, c'est pas ça). J'ai donc relancé quelques tests sur une machine avec un core-duo, en me fiant juste au calcul avec microtime(), et sans xdebug (il n'était pas installé). J'ai obtenu des résultats cohérents avec ceux de code34. J'ai alors installé et activé xdebug. J'ai relancé, en me fiant toujours juste au calcul avec microtime(). Et là j'ai obtenu des résultats similaires aux miens.

Bref, je crois que xdebug fausse complètement les résultats quand il s'agit de comparer les performances de deux choses.

Je publierais des nouveaux résultats plus tard, sans xdebug activé. (Du coup, Doctrine semble beaucoup plus performant ).

jeudi, novembre 29 2007

Comparatif des performances des ORM PHP

Dans un billet précédent, j'avais expliqué en quoi jDao était plus performant que d'autres framework ORM comme Doctrine ou Propel. Ce n'était cependant que de la théorie, et il m'a semblé après coup qu'il serait bon de voir, en pratique, si la théorie était vérifiée. J'ai donc fait une série de tests sur Doctrine, Propel, phpMyObject et jDao, afin de comparer leurs performances.

Lire la suite...

mercredi, novembre 28 2007

Support de Firebug dans Jelix

Il ne reste plus beaucoup de tickets à fermer pour la version finale 1.0 de Jelix. L'un de ceux que je viens de fermer, c'est le support de Firebug : j'ai ajouté la possibilité d'afficher dans Firebug les erreurs php, les erreurs jelix et les messages de debug envoyés via la classe jLog. Et ça donne ça :

Ici j'ai volontairement généré une notice PHP et trois messages de log avec jLog.

Bien sûr, il est toujours possible d'afficher les erreurs directement dans la page ou dans un fichier de log, mais passer par Firebug permet d'éviter de polluer la page tout en ayant un accès facile à ces messages.

jeudi, novembre 8 2007

Suspens...

J'avais promis des benchs entre jDao, Propel, Doctrine et phpMyObject. J'ai pu les terminer dimanche dernier, mais je n'ai pas encore fini de rédiger le billet qui explique tout (je vais quand même pas vous balancer des chiffres sans justification, ni sans les sources :-) ). Comme vous le savez peut-être, j'ai en effet eu quelques petits soucis qu'il faut que je règle en priorité...

mardi, octobre 30 2007

Pourquoi jDao ?

Il y a de plus en plus de projets PHP visant à proposer une API pour faire du mapping relationnel-objet (ORM). En d'autres termes, offrir la possibilité au développeur de manipuler facilement les enregistrements d'une table, par le biais d'objets. J'ai souvent regardé certains d'entre eux pour voir si il serait intéressant de les incorporer dans mon framework PHP Jelix. Au final, j'ai continué à gardé jDao, l'API de mapping relationnel-objet propre à Jelix (issue de CopixDao du projet Copix), bien qu'au niveau fonctionnalité il soit légèrement en dessous de ce que l'on trouve par ailleurs. Pourquoi ? Principalement pour ses performances.

Lire la suite...

vendredi, octobre 19 2007

Jelix 1.0 beta 3.1

Et hop, une nouvelle version de maintenance pour Jelix. Elle corrige pas mal de bugs, et apporte des améliorations dans le contrôleur CRUD.

Ce que j'ai apprécié sur le projet depuis la beta3, c'est qu'il y a de plus en plus d'utilisateurs (bon, pas des centaines non plus..), et du coup, j'ai eu plus de retours, plus de bugs signalés et plus de patchs proposés. J'ai même des messages sur IRC, comme un d'aujourdhui :

La beta3.1 devient vraiment un régal à utiliser je trouve. jforms et le controller crud apportent vraiment une aide précieuse.

Tout ça est encourageant pour la suite. Merci aux utilisateurs et aux contributeurs :-)

mardi, septembre 18 2007

Jelix 1.0 beta 3

Après cinq mois de développement, une nouvelle version de Jelix est sortie. Beaucoup d'améliorations ont été apportées, notamment avec le nouveau système de formulaire jForms particulièrement puissant. Ça fait des années que je rêve d'avoir un truc de ce genre, et j'ai enfin fini par le mettre au point. Cependant, ce n'est qu'un début, et des améliorations sont déjà prévues pour les prochaines versions.

À ceci il faut ajouter un contrôleur générique permettant de faire du CRUD en quelques lignes de codes, ce qui est permis grâce à jDao (mapping relationnel objet) et jForms.

Et puis pleins d'amélioration un peu partout, des bugs corrigés etc.. De plus c'est une version stable, qui a été largement testé en "grandeur nature" (merci Over-blog ;-) ) mais aussi via le biais de centaines de tests unitaires. À ce propos, un nouveau module, junittests, permet de créer des tests unitaires relativement facilement.

On a mis l'accent sur la doc en français. Cependant il reste de gros efforts à faire sur la doc en anglais, et cela va être l'un des principaux objectifs pour la prochaine version 1.0, en plus de quelques autres améliorations sur jDao et jForms. On va essayer de sortir une version 1.0 d'ici 2 ou 3 mois (quand ça sera prêt).

lundi, septembre 3 2007

Écosystème de Jelix

Ces derniers mois ont vu les participations augmenter dans le forum de jelix, c'est plaisant à voir :-) (sauf au mois d'août où c'était plutôt creux). Il est certain que le nombre d'utilisateurs augmentent, et en tout cas que le framework est testé par de plus en plus de monde vu les statistiques de téléchargement. Certains franchissent ce cap de test, et décident d'utiliser Jelix pour leurs projets, comme par exemple la société RICHART, qui vient de m'avertir qu'ils recherchaient un développeur : allez donc lire leur annonce sur Alsacréations ;-)

Par contre, les utilisateurs pour le moment ne sont que francophones. Malgré que le site soit lisible en anglais, qu'il apparaisse en première page de google (mot clé "php framework" en anglais) et qu'il y ait un embryon de doc dans cette langue, je n'ai eu aucun contact d'utilisateur non francophone. Je pense qu'on peut attribuer ce déficit sur le fait qu'il y ait peu de docs en anglais justement (des volontaires pour aider à traduire ? ;-)). C'est vrai aussi que je ne fréquente pas les sites php en anglais (ni français d'ailleurs) pour faire de la pub. Mais quand même, qu'il n'y ait pas eu une seule question d'un utilisateur anglophone sur le forum ou irc en 1 an et demi, je trouve cela un peu étrange. Il va falloir revoir la comm' de ce coté là :-)

jeudi, août 30 2007

Détournement

Il y a des utilisateurs de Jelix qui s'amusent parfois, en créant par exemple ce détournement d'image :

pub détournée par Brunto

De là à prendre comme slogan "Jelix, le framework qui dope votre moteur PHP5"... :-)

mercredi, août 29 2007

jForms est opérationnel

Sitôt rentré de vacances samedi dernier, je me suis replongé dans le code de Jelix. J'ai enfin terminé une première version de jForms, le système de formulaire dont j'avais décris quelques spécifications il y a quelques temps. J'en suis très content même si j'ai encore plein d'idées pour le faire évoluer. Cependant l'implémentation actuelle est largement utilisable et suffira pour la beta 3 de Jelix, qui est presque terminée, le temps de terminer deux trois trucs dont un contrôleur CRUD générique. Et bien sûr la documentation à compléter.

Vu le temps que la beta3 aura mis à sortir, je me demande si je ne vais pas repousser à la version 1.1 des choses prévues pour la 1.0, histoire de sortir assez rapidement une version 1.0 finale. J'ai lu quelques commentaires sur le net de personnes qui hésitent à utiliser Jelix parce qu'il est estampillé "beta", alors que finalement, il est totalement opérationnel et stable (confirmé par son utilisation notamment dans un gros site ;-) ). C'est dommage de perdre ainsi des utilisateurs. Release Early, Release Often comme on dit. Je vais essayer de suivre un peu mieux cet adage :-)

PS: jForms est dispo dans les versions "nightly" de Jelix en téléchargement et l'application testapp contient un exemple d'utilisation.

- page 2 de 5 -