sept. 29, 2008
Avant tout, je pense qu'il faut séparer les frameworks PHP et ceux en Javascript.
Les Frameworks Javascript sont une véritable révolution dans le "petit" monde du web. Il en existe plusieurs mais deux sont réellement utilisés à grande ampleur :
- prototype (actuellement en déclin)
- jquery (en pleine croissance avec une foison de plug-ins)
C'est en grande partie grâce à ces frameworks que les applications web2.0 sont apparus (mais pas uniquement, on remerciera également Adobe).
J'en viens maintenant aux frameworks PHP. Actuellement, je dirais qu'il en existe 2 :
- le Zend Framework, actuellement en version 1.6 qui est plus une bibliothèque de librairies. Elles sont utiles mais ne composent pas, pour moi, un framework.
- Symfony, actuellement dans sa version 1.1. Ce dernier étant pour moi un framework à part entière.
Ces derniers sont pour moins un véritable problème. En effet, ils répondent, il est vrai, à tous les besoins possibles et imaginables. Cependant, ils chargent beaucoup d'élément qui demande du support et dont on ne sait pas toujours comment le déroulement s'effectue.
Je préfère donc réutiliser les briques que j'ai développé moi-même (par exemple pour la gestion des templates ou encore pour la connexion à la base de donnée). Je garde ainsi le contrôle du code, tout en répondant trés précisément au besoin des applications que j'ai à développer.
Je concluerais en disant que pour utiliser un Framework quel qu'il soit, il faut véritablement se poser la question de ce que l'on veut faire et comment on veut le réaliser. On utilisera ensuite l'outils le plus adapté.
juin 04, 2008
J'ai abordé le sujet dans mon précédent billet. Les expressions régulières ou rationnelles sont puissantes et rapides, une fois qu'elles sont maitrisés. En PHP, il existe deux types d'expressions régulières :
- les POSIX
- les PCRE (Perl Compatible Regular Expressions)
C'est le second type qui est le plus performant mais plutôt que de faire un long laïus dessus, je propose de lire ce tutoriel qui les explique très clairement : Les expressions régulières PCRE (Perl Compatible Regular Expressions).
Les expressions régulières me permettent de tester les variables qui proviennent de formulaires en POST ou en GET, tout particulièrement lorsque ces dernières vont "attaquer" ensuite une base de donnée. Cela évite tout problème d'injection SQL. J'ai, par ailleurs, mis en place une librairie avec différents types de données (nom, prénom, titre, email, ville, etc...) que je réutilise pour valider les informations récoltées.
Je n'ai pas, pour le moment, trouvé de meilleure solution pour tester des variables que les expressions régulières. Pourquoi m'en priverais-je si elles sont en plus performantes ? ;-)
mai 20, 2008
J'ai fait ce billet pour deux raisons principales :
- avoir un coup de gueule auprès des personnes qui ne sont pas capable de mettre en place leur test de variables
- montrer quelques exemples simples pour éviter des erreurs Notice ou Warning en PHP.
Avant tout, la première chose à faire est d'effectuer ses développements avec le niveau le plus haut d'erreur E_ALL. Très souvent cela indique énormément d'erreur mais la contre partie est que l'on aura par la suite moins de problème d'erreur et de compréhension au niveau du code.
Premier exemple que je rencontre très régulièrement : la non initialisation d'une clé d'un tableau. Ce type d'erreur se voit par un Notice :
Notice: Undefined index 'champ' in 'fichier.php' on line 10
Ce type d'erreur est très simple à corriger. J'utilise pour ma part la fonction isset(). Cela donne le bout de code suivant :
if (isset($tableau['champ'])) {
on assigne une valeur par défaut
}
On peut appliquer le même type de traitement pour les données des variables \$_GET, \$_POST, ...
Le second exemple concerne plus la sécurisation des données venant provenant des formulaires et / ou URL pour valider en utilisant les expressions régulières. Mais ce second exemple fera l'objet d'un prochain billet.
mars 04, 2008
Netscape a tiré sa révérence ce mois de Février dernier. On se rappelera de Netscape comme étant le premier navigateur à avoir vulgarisé le web (au niveau de son utilisation). Le projet a démarré en 1994. C'est également grâce à Netscape que le Javascript était né. On retiendra également sa mort progressive avec l'arrivée massive et écrasante (dû à son installation par défaut sur les ordinateurs) du navigateur Internet Explorer de Microsoft.
Racheté plusieurs milliards de dollars par AOL, Netscape n'a alors jamais réussi à remonter la pente. Mais ces "fondateurs" ont migré vers la fondation Mozilla et plus précisément vers le développement de Firefox, l'outsider actuel d'Internet Explorer. La dernière version de Netscape est la 9.0.0.6.
Mais à peine la fin de Netscape, que l'on parle chez l'éditeur de Richmond (Microsoft) de la prochaine mouture d'Internet Explorer : la version 8. Enfin, on parle, on devrais plutôt dire que les tests sont en train de démarrer, la beta 1 est disponible aux abonnées de la MSDN. Cette version contiendra 2 moteurs afin de gérer progressivement la bascule entre le HTML4/(x)HTML et le HTML5/CSS2.1/XHTML1.1 (cf mon précédent billet). Lors de l'affichage des pages, l'application choisira le moteur adapté en fonction de la page.
Mon avis personnel est l'attente d'un navigateur made in Microsoft réellement fidèle aux recommandations du W3C. Ceci afin de ne pas rencontrer à nouveau les problèmes que l'on a toujours avec IE6. En revanche, je salue Microsoft de permettre une migration progressive des sites vers les futurs standards.
J'attends donc les retours de la fondation Mozilla (qui prépare dans l'année la sortie de Firefox 3) et d'Opera.
janv. 31, 2008
... ou dans le jargon technique le versionning permet un suivi des évolutions dans le code. Gros avantage en cas de besoin, on peut revenir à une version antérieure et stable du code. Il permet également à plusieurs personnes de travailler sur un même code; ce code sera fusionné et évitera tout écrasement de code. Plusieurs outils sont disponibles afin de permettre ce suivi de version : CVS et SVN, d'autres outils existent...
Personnellement, je suis plutôt adepte de SVN. Son intérêt est également d'avoir un ensemble d'application connexe pour le suivi des développements. En voici une liste exhaustive :
- Trac est un browser de visualisation du versionning. Il contient également un wiki.
- Timing And Estimation Plugin pour effectuer un suivi du temps pour différentes tâches (plugin pour trac)
- Work Log Plugin permet le suivi des bugs (plugin pour trac)
- Doxygen Plugin pour visualiser la documentation doxygen dans Trac.
Pour conclure, je considère le versionning comme indispensable dans le cadre de développement professionnel !
janv. 08, 2008
Le blog ouvre ses portes... Je tenterais de l'alimenter au maximum mais surtout avec des informations de qualités. Je vais également modifier rapidement je pense le théme du blog.