Archive de la catégorie ‘PHP’
Compiler et installer l’extension Runkit pour PHP sur Mac OS X
Je parlais récemment sur ce blog de mon besoin de l’extension Runkit afin de supprimer une constante en PHP. Après plusieurs heures a essayer de compiler l’extension sur mon MacBook, j’avais finalement abandonné temporairement.
Ayant remplacé le binaire php par celui de Marc Liyanage, j’ai essayé de nouveau de compiler de Runkit sur mon MacBook et là, oh surprise, ça fonctionne
Pour les intéressés, je vous mets la démarche ci-dessous.
Mac OS Leopard, PHP et GD
En voulant utiliser pChart, une librairie en PHP pour la création de graphiques, je me suis aperçu que la version de PHP5 fournie de base avec Mac OS 10.5 n’a pas l’extension GD d’activée.
Heureusement, j’ai trouvé une solution sur les forums Entropy.ch qui consiste à remplacer le binaire php de Leopard par le binaire de Marc Liyanage. Ce n’est peut-être pas l’un des meilleures solutions (quoique…) mais c’est la plus rapide donc ça me va
Supprimer une constante en PHP
Supprimer une constante en PHP, voilà une idée bien bizarre ! Effectivement, si l’on veut modifier ou supprimer une constante alors il ne devrait pas s’agir d’une constante mais d’une variable. Je suis tout à fait d’accord sur ce point !
Alors pourquoi vouloir supprimer une constante ? J’ai pris l’habitude d’écrire des tests unitaires pour les logiciels que je développe. Cela me permet de m’assurer qu’ils fonctionnent correctement et de faire évoluer le logiciel de façon plus ou moins importante sans « casser » le reste de l’application. Le problème c’est que j’ai un fichier qui défini une constante. Pour les tests sur ce fichier, je définis une constante à une valeur particulière mais dans les autres fichiers de tests cette constante doit reprendre sa valeur normale… L’idée ici est donc de supprimer la constante à la fin du fichier de tests pour permettre de la redéfinir dans les autres.
Upload de fichier avec barre de progression en PHP
Il y a une petite nouveauté dans PHP 5.2 qui est passée un peu inaperçu, c’est la possibilité de suivre l’avancement de l’upload d’un fichier.
Je me suis un peu amusé à tester ça en local et ça marche
Bon, le problème c’est qu’il faut l’extension APC pour pouvoir lire dans le cache PHP. Je vous aurai bien mis une petite démo en ligne mais mon hébergeur n’a pas installé l’extension et je ne peux pas la charger dynamiquement avec la fonction dl.
Du coup, je me demande si ça vaut vraiment la peine d’implémenter ça dans l’E2T… Combien d’hébergeurs propose APC ? Je doute qu’il y en ait beaucoup malheureusement. C’est dommage car le système est assez simple à mettre en place, quelques lignes de code (PHP et Javascript) suffisent.
Je pensais aussi l’utiliser dans FabCMS mais je vais finalement me diriger vers quelque chose en flash…
Multi-Upload en php/javascript
Ça y est ! Je viens de terminer la dernière fonctionnalité de mon CMS perso pour la prochaine version. Il s’agit d’un gestionnaire de fichiers. Le fonctionnement est plus ou moins similaire au gestionnaire de pages sauf que cette fois c’est des fichiers physiques. Par chance, j’avais déjà écrit une classe php pour gérer les fichiers physiques… sur un FTP distant. Comme je n’en ai plus besoin (les images et mon site sont chez le même hébergeur), j’ai dû écrit une nouvelle classe pour un dossier qui serait disponible localement.
Une des fonctions du gestionnaire est bien sûr de pouvoir envoyer des nouveaux fichiers. Le bût d’un CMS est normalement de pouvoir gérer tout son site via une interface web, il faut donc quelque chose d’assez ergonomique et rapide. Souvent le problème pour ce genre de fonction c’est l’upload de plusieurs fichiers. Si votre formulaire ne propose d’uploader qu’un seul fichier, cela va vite devenir chiant. Il y a bien une solution qui consiste à afficher plusieurs champs « fichier » dans la page mais nous allons être limité avec le temps d’exécution de php. Vous pourrez donc au maximum uploader que 2-3 fichiers en même temps…
Heureusement, il existe une autre solution : l’excellente classe javascript MultiUpload de Nem. Vous saisissez les fichiers à envoyer et seulement après vous validez le formulaire. Les fichiers seront envoyés un par un mais sans intervention de la part de l’utilisateur. Bien sûr, il faut toujours saisir les fichiers un par un mais ce n’est pas gênant pour une quantité raisonnable de fichiers (moins de 20).
Il reste maintenant plus que quelques petits détails ainsi que mettre à jour mes modules et je pourrais mettre à jour mon site