Intégrer PHPDocumentor à Eclipse PDT
Comment utiliser le générateur de documentation PHPDocumentor sur un projet PHP dans Eclipse.
Code, science & musings
Comment utiliser le générateur de documentation PHPDocumentor sur un projet PHP dans Eclipse.
Depuis Java 1.5, nous dispositions d'objets d'énumération qui facilitent grandement la vie. Voyons comment retrouver ce comportement en PHP...
Une nouvelle fonctionnalité de PHP 5.4 plutôt intéressante : les « traits », ou comment réutiliser du code sans passer par l'héritage de classes.
Sébastien Sauvage publie un rappel fort utile pour tout les codeurs débutant qui seraient perturbés par la gestion des nombres décimaux dans leur langage de programmation préféré. Petit commentaire supplémentaire sur la manière d'éviter les problèmes en php et en javascript.
Quel est l'avantage/inconvénient d'un langage de structuration comme le HTML ou un langage de présentation comme le CSS, par rapport à des langages de programmation comme le php ou le java ?
PHP possède des méthodes pour lire (json_decode) ou encoder (json_encode) des objets json. La chaîne de caractères retournée par cette dernière méthode est malheureusement illisible car sans indentation. Et comme l'un des intérêts du json, c'est justement de pouvoir être lu facilement par un humain, voici comment corriger cela...
Apparition d'un nouveau module dans la librairie PHP, codetodoc, qui permet de générer une documentation de code javascript à partir des commentaires. Encore au stade alpha mais les premiers tests sont encourageants.
Il est assez courant de rencontrer des propriétés publiques en lecture seule quand on manipule des objets DOM en javascript par exemple. Voici une piste, sans doute pas toute neuve, pour disposer de ce type d'accès à une donnée en PHP.
L'en-tête HTTP « Accept » est une information envoyée par un logiciel effectuant une requête sur un serveur (typiquement : votre navigateur web qui demande d'afficher la page d'un site) et qui signifie à ce dernier le type de contenu qu'il accepte de recevoir. Et il est parfois nécessaire de décortiquer en détail cette information...
Les mauvaises habitudes étant ce qu'il y a de plus dur à perdre, me voilà de nouveau atteint par une crise de « renommagïte aiguë ». Les victimes aujourd'hui : certains projets informatiques.
Dans ma quête toujours insatisfaite de libérer mes données de formats trop spécifiques, j'ai décidé d'écrire un petit outil de conversion des fichiers du gestionnaire de bibliothèque Tellico.
La librairie rnb-php possède de nombreuses classes qui manipulent des données stockées dans des fichiers sous différents formats ; il existait donc différentes variantes en fonction du format géré : solution qui atteint vite ces limites, d'où un changement de paradigme...
Petit exercice dans le cadre d'une uniformisation de mes outils de développement : l'écriture d'un même objet, une structure de noeuds hiérarchiques, dans trois langages différents : javascript, PHP et python.
Petite mise à jour du site, à la fois côté serveur et côté client, avec une mise à jour de la maquette, quelques corrections de bugs et l'activation de certaines nouvelles fonctionnalités.
Enfin une évolution de projet dont je commence à voir la fin : le parser de syntaxe wiki, utilisé sur ce site pour transformer les documents texte en code HTML, est devenu un outil plus générique de conversions de syntaxes.
Un point sur les projets en cours. Outre le nettoyage de la liste des tags qui poursuit son chemin afin de disposer d'un vocabulaire un peu mieux contrôlé, deux développement accaparent la majeure partie de mon temps libre : un outil de gestion de collections et un convertisseur d'outliners.
Cela a pris plus de temps que prévu, mais on voit finalement le bout du tunnel : après la page d'accueil, c'est finalement l'ensemble du site Framasoft qui a fait peau neuve cette nuit, non sans difficultés d'ailleurs.
La nouvelle architecture du site a nécessité de nombreuses adaptations techniques, notamment pour la mise en cache des pages.
La gestion du site a subit de grands changements ces derniers jours, avec une réécriture quasi-complète des scripts de publication PHP.
Les mauvaises habitudes ayant la vie dure, je me suis de nouveau lancé dans une refonte des scripts PHP qui gèrent la publication du site.
J'avais installé depuis quelque temps sur les pages index des fonctions javascript qui permettaient de modifier la liste des brèves ou des articles en fonction de la date ou de la catégorie de publication. Or, sans javascript, impossible d'accéder à ses fonctionnalités. J'ai donc traduit les fonctions en PHP.
Voici un outil qui pourrait être utile à beaucoup de gens : une collection de scripts javascript pour corriger les textes tapés dans des formulaires web.
Alors que le site grandit en taille, la maintenance d'une version statique des pages devient de plus en plus problématique. D'où l'idée de les convertir en PHP et de bénéficier des avantages d'une publication dynamique.
Voilà, le gros du travail est fait: le passage au XHTML et le changement de maquette. Comme toujours, les petits ajustements techniques se feront au jour le jour, surtout pour l'affichage des pages avec Internet Explorer qui est encore loin d'être satisfaisant (mais le sera-t-il un jour ?).
Travaillant principalement en javascript (pour le plaisir et au boulot) et en java (uniquement au boulot - faut pas déconner !), je suis habitué à la programation par gestion d'événements. Voici une solution que j'utilise en PHP pour retrouver un comportement comparable.
Après une mise à jour avortée (la 7, prévue cet été), voici enfin que j'arrive à peu près au bout des modifications et évolutions que je souhaitais apporté au site cette année (2011).
Après plusieurs semaines passées dans un état lamentable, ou toute requête se terminait par une réponse 404 (même si la page était correctement affichée), voici la nouvelle version du site. Comme toujours, plus de chambardements dans l'arrière-cours qu'en vitrine...
Après des mois passés à tripatouliier le code (et donc, comme d'habitude,sans écrire grand chose), voilà enfin une nouvelle évolution du site. Outre les habituelles corrections de bugs et évolutions mineures, deux changements majeurs : le pasage au HTML 5 et la gestion de données au format JSON.
Après plusieurs mois de développement et certains moments de découragement, la nouvelle version du système de gestion du site a enfin vu le jour début 2008 et a même été baptisé d'un petit nom : FlatCMS. Petit tour de la nouvelle organisation.
Petit résumé de la mise au point de la version PHP du site, décrite à l'origine dans une série de trois brèves publiées entre le 12 et le 15 octobre 2005.
rnb-php est un ensemble de scripts PHP développés depuis 2005 qui réunissent d'une part des fonctionnalités courantes de manipulations de données (dates, tableaux, requètes HTTP, ...) ainsi que des objets plus spécifiques de gestion de données.
Ce plugin pour le CMS PluXml permet d'utiliser WYMeditor pour éditer les articles.
PluXml-UrlRewriting est un bout de code écrit au boulot pour un projet particulier, base d'un plugin PluXml permettant de gérer des urls plus classiques que ce que propose le CMS par défaut.
JOUANNEAU, Laurent. FakeServerConf, une nouvelle lib pour vos tests PHP. jy[B]log,
A essayer de toute urgence : FireLogger, une extension Firefox pour afficher vos logs de debug PHP dans une console de Firebug au lieu de lancer constamment des "echo" un peu partout. On inclut un simple fichier et le tour est joué. Attention cependant : le script ajoute des en-têtes à la réponse du serveur.
KAMEN, Croc. Making the Ugly Elegant: Templating With DOM. Kamen Design,
Approche intéressante dans la manière de concevoir une syntaxe de template : du HTML 5 uniquement, les données utilisables par le langage côté serveur étant stockés dans les attributs « data- » des éléments, et donc accessible par l'API DOM.
POTENCIER, Fabien. Pragmatism over Theory: Protected vs Private. fabien.potencier.org,