Toute l'actualité francophone sur PHP en un seul flux

Novembre 2007 – Prendre un Café: Utiliser Symfony pour vos projets

Suite à l'émergence des frameworks web, beaucoup d'équipes de développement ont décidé de leur utilisation sans toujours bien réaliser les tenants et aboutissants liés la démarche, croyant souvent avoir enfin trouvé une méthode miracle pour produire vite et bien. Il peut en résulter de sévères déconvenues, quel que soit le framework, le langage ou la plateforme retenus.

Concernant Symfony, il en va de même ; et si on peut bien entendu trouver énormément d'avantages à son utilisation sur un projet, il faut également bien avoir conscience des contraintes qu'un développement sur sa base implique, sous peine de se retrouver dans le mur assez rapidement.

Symfony n'est pas un CMS

Il est immédiatement tentant de retenir Symfony pour tout type de projet tellement il est agréable de développer sur sa base. Cependant, pourquoi systématiquement réinventer une roue qui tourne peut-être déjà fort bien ailleurs ? L'idée ici est de s'interroger sur la réelle nécessité de recourir à un développement spécifique ; en effet, même si coder en Symfony est très encadré, il n'empêche que la logique métier est entièrement à définir par l'équipe de développement [1]. Plus particulièrement concernant les problématique de gestion de contenus, le besoin métier sur le projet est-il suffisamment conséquent, ou un CMS comme Drupal, SPIP, ezPublish ou Joomla couvre t-il nativement l'ensemble du périmètre fonctionnel cible ? [2]

Un développement spécifique introduira le plus souvent beaucoup plus d'exigences, de compétences et de compléxité qu'une intégration basée sur un outil de gestion de contenus autonome existant (et digne de ce nom). L'idée est bel et bien de renoncer à se faire plaisir à tout prix pour se situer au plus près de la réalité du besoin.

Bien entendu, je me fais aussi ici l'avocat du diable. Pour avoir joué avec les principaux CMS PHP open source du marché et connaissant la propension naturelle d'un client à enrichir au gré de l'avancement projet le périmètre fonctionnel souhaité [3], je préfère allègrement à titre personnel me baser sur un framework comme Symfony afin de rester agile et parer à toute éventualité. Mais je sais aussi quelles sont mes compétences réelles sur le sujet, et dès qu'une équipe dont je ne cerne pas le niveau entre en ligne de compte, généralement les problèmes commencent. Ça tombe bien, c'est justement l'objet du prochain chapitre ;)

Symfony est exigeant

Non, Symfony ne transformera pas magiquement un mauvais développeur en bon développeur... même s'il peut y contribuer à terme ;)

Plus sérieusement, le but réel de l'utilisation d'un framework est bel est bien de vous rendre plus efficace et productif, certainement pas de vous compliquer la vie ou de vous faire perdre du temps.

Il faut bien prendre conscience que le temps de montée en compétence sur l'utilisation du framework - déjà naturellement exigeante - requière également pour certains une montée en compétence en programmation tout court. Et cette dernière, si elle peut se faire sur un projet, peut également allègrement le plomber. Un développeur débutant bidouilleur PHP mettra fatalement plus de temps qu'un codeur expérimenté à appréhender l'ensemble des possibilités introduites par PHP5, la programmation orientée objet, les motifs de conception, mais aussi le respect des bonnes pratiques notamment liées au travail collaboratif ou que sais-je encore.

Le risque à court terme est de voir le code du projet grevé dans sa qualité et sa maintenabilité. À moins bien entendu de prendre en compte en amont cette charge inhérente à la formation, mais on connait tous la réalité professionnelle et commerciale du milieu qui est le notre ;)

Symfony ne vous dispense pas d'organiser votre projet

Oui, Symfony fait la part belle aux conventions et prémâche énormément le travail redondant à tout projet de type web. La vie des (bons) développeurs est grandement facilitée, et on peut vraiment gagner rapidement beaucoup de temps. Mais une grave erreur serait de sous-estimer la charge liée à l'organisation et la gestion de la vie du projet.

Par exemple, ce n'est pas en mettant plus de développeurs sur un projet Symfony (ou autre d'ailleurs) que celui-ci sera développé plus vite. Au contraire, même ; tout codeur avec un tant soit peu d'expérience professionnelle a déjà rencontré ce type de cas de figure : on vend un projet de 100 jours de développement, on se fixe un retroplanning ambitieux avec une mise en ligne à 20 jours ouvrés, et on staffe donc arithmétiquement cinq développeurs à plein temps en pensant que le résultat sera totalement équivalent au travail qu'aurait fourni un unique développeur en 100 jours de développement pour concevoir l'intégralité du code de l'application résultante.

Bien entendu, c'est illusoire et généralement, le projet se termine sur des dépassements conséquents et le mécontentement du client [4]. Et pour cause, la déperdition d'énergie utilisée à la communication sur le projet est fonction du nombre d'acteurs présents sur ce dernier. Et on peut staffer trois chefs de projet à plein temps pour canaliser tout ça, c'est d'une part économiquement peu viable et d'autre part totalement inefficace, ces derniers devant perdre également beaucoup de temps à se synchroniser entre eux, puis avec les membres de l'équipe.

Moralité

Non, Symfony n'est pas le remède miracle aux lacunes organisationnelles des structures en charge de la réalisation d'un projet, mais bien un outil exigeant qu'il faut savoir appréhender de la bonne façon en prenant en compte le plus en amont possible ces problématiques. Le gain réel et indiscutable d'efficacité apporté par l'utilisation d'un framework comme Symfony est à ce prix ;)

Notes

[1] Je n'ose pas évoquer ici la notion d'architecte logiciel connaissant la réalité moyenne du monde PHP.

[2] Pour nuancer ce propos, de plus en plus de plugins Symfony tendent à apparaitre pour couvrir ce type de besoins fonctionnels.

[3] Le premier qui me parle du sacrosaint cahier des charges contractuel, je le mords.

[4] Sans parler de la charge de stress portée sur l'équipe, qui du coup va saloper le boulot pour livrer au plus vite.

Novembre 2007 – z-f.fr: Stats d'octobre publiées

Forum: Brèves
Auteur: philippe
Écrit le: Thu, 01 Nov 2007 09:27:25 +0100
Dernier message: Thu, 01 Nov 2007 09:27:25 +0100

Novembre 2007 – tigrou/pwet.fr: eZ Publish developer day à Paris le 31/10/2007

Hier s'est déroulé le premier eZ Publish developer day à Paris . Cet évènement était organisé par eZ Systems France en marge de la journée partenaires. À l'inverse de la rencontre partenaires, cet évènement était orienté technique et fut très riche (suffit de voir la longueur de ce billet :))

La première surprise fut l'audience puisque nous étions une bonne cinquantaine ! Même si comme le dit Roland Benedetti (Managing Director eZ Systems France), " il se passe quelque chose au niveau d'eZ Publish en France" une telle audience fut une surprise pour tout le monde. Ayant une intervention de prévue en fin d'après midi, c'était aussi un peu de challenge en plus pour moi :-) Il est aussi agréable de pouvoir mettre un visage sur différents noms rencontrés par mail, sur les forums ou via mon blog .

Pendant la première partie de l'après midi, nous avons donc pu écouter Paul Borgermans responsable du eZ Labs (la partie R&D d'eZ Systems) nous présenter les orientations et les nouveautés techniques autour d'eZ Publish 4 et des extensions.

eZ Publish 4

Une version beta devrait sortir d'ici quelques jours alors que la version finale est attendue pour novembre 2007. Comme prévu, la version 4.0 sera un portage de la version 3.10 avec la possibilité d'utilisé les eZ Components dans les extensions.

Une version 4.x devrait sortir en début d'année 2008 qui devrait, elle, apporter beaucoup de nouveautés avec l'intégration réelle de certains Components comme Database , Template et peut être Workflow , Authentication ou Persistent Object . Cette version obligera donc à modifier les templates. L'ancien système de template sera abandonné mais pour faciliter la transition, un utilitaire devrait être fournit pour transformer les templates conçus avec l'ancienne syntaxe vers la nouvelle. Cet utilitaire devrait normalement être capable de transformer 80 à 90% des templates sans problème. Paul assure aussi qu'une priorité du développement est l'amélioration de performances ! À noter que le x de 4.x sera fonction du degré de rupture par rapport à la version 4.0.

Une autre priorité sera la sortie de produits mieux testés, pour cela, l'équipe d'eZ Labs a semble t il mis au point un système de tests poussés basé sur Buildbot et Selenium .

Enfin, Paul nous a confié quelques orientations futures sur le développement, j'ai retenu en vrac :

  • l'amélioration du mode Cluster pour permettre l'utilisation de plus de SGBD et permettre le stockage de données à différents endroits selon leur type (DB, serveur NAS, ...)
  • le support de plus de système de base de données (MSSQL, Oracle, DB2, ...) grâce au composant Database. Ce point vient un peu contredire l'article de Clever Age que je mentionnais dans un précédent billet ce qui est une bonne chose.
  • le support d'autres serveurs HTTP comme IIS/PHP CGI et éventuellement de Lighthttpd
  • une amélioration du système de droit avec la possibilité de fixer des droits aux niveaux des champs !

eZ Publish va donc énormément évolué dans les mois qui viennent, le passage à PHP5 est à la fois une épreuve et une opportunité pour les développeurs.

Extensions eZ Find et eZ Flow

Paul nous a aussi présenter les nouveautés à venir d'eZ Find , l'extension de recherche pour eZ Publish basé sur le projet Solr . Une nouvelle version stable (1.1) est attendue pour le mois de novembre avec le support "basique" des "facets". Les "facets" sont en fait des propositions automatiques faites à l'internautes permettant de raffiner sa recherche. La plupart des sites de e-commerces proposent cette solution (par exemple rechercher "nikon" sur la FNAC )

Bertrand Maugain nous a aussi fait une démonstration de l'extension eZ Flow, une nouvelle extension qui devrait sortir dans les semaines qui viennent. Il s'agit semble t il d'une surcouche du front site editing qui ajoute des fonctionnalités de paramètrage (ordre, type de template, ...) et le tout soupoudré d'AJAX. Vraiment très impressionnant. J'aurai le temps d'en reparler quand ce sera sorti.

Le portage des extensions vers eZ Publish 4

Paul a également fait une courte intervention sur le portage des extensions vers eZ Publish 4. Dans la plupart des cas, ce sera relativement simple et les points à surveiller sont les suivants :

  • les fonctions sur les chaînes de caractères doivent être compatibles avec l'UTF-8 puisque ce sera l'encodage d'eZ Publish
  • les objets sont passés par défaut par référence en PHP5, il faudra donc éliminer du code les retours par références
  • l'ensemble des constantes seront maintenant des constantes de classes de manière à utiliser le système d'autoload
  • le système d'autoload permettra d'éviter les require_once et include_once, il faudra par contre régénérer un tableau de cache (permettant d'obtenir des performances correctes) à chaque ajout d'extension.
  • les méthodes ne pourront plus être à la fois appelées de manière static ou non.

Retour d'expériences et solutions pour sites à fort trafic avec eZ Publish

Enfin l'après midi s'est terminé par ma présentation sur quelques expériences et solutions mises en place dans le cadre de mon travail sur des sites à plus ou moins fort trafic. J'ai d'abord fait quelques rappels sur les performances out of the box d'eZ Publish avant d'examiner quelques solutions mises en place pour aller plus loin :

  • cache statique
  • mode cluster
  • génération statique sur mesure récemment mise en place sur site d'actualités.

Cette journée a vraiment été très instructive et intéressante mais trop courte. Je regrette d'avoir du partir aussi précipitamment, certaines discussions qui ont suivi cet après midi avaient l'air très intéressantes, vivement le prochain évènement de ce type (peut être un deuxième eZCamp à Lyon ou ailleurs en début d'année prochaine ?).

Novembre 2007 – Apprendre-PHP.com: Installation et prise en main de MAMP

Afin de pouvoir travailler avec le langage PHP, nous devons nous assurer des pré-requis nécessaires à l'exécution des programmes. Dans le cadre de développement d'applications web, un serveur Web muni de PHP est obligatoire. Le logiciel MAMP (abbréviation de Macintosh, Apache, Mysql and PHP) permet de lancer un serveur web local sur une machine fonctionnant sur le système d'exploitation Mac OS X. C'est un logiciel destiné aux utilisateurs de la marque à la pomme et qui contient les composants gratuits suivants : Apache (deamon serveur), PHP5, MySQL (SGBD, SQLite (SGBD), PHPMyAdmin et SQLiteManage (outils d'administration de BDD).

Novembre 2007 – z-f.fr: Article sur le ZF dans le magazine programmez

Forum: Brèves
Auteur: philippe
Écrit le: Mon, 05 Nov 2007 14:25:54 +0100
Dernier message: Mon, 05 Nov 2007 14:25:54 +0100

Novembre 2007 – Kamelot Blog: Loïc et son elePHPant

Loïc et son elePHPant

Quand je vous disais que Loïc aimait déjà PHP. Grace à un petit paquet arrive ce jour de Montreal, Loïc fera encore plus de beaux rèves


Un big Grand merci à Damien.!!!


Cliquez sur la photo pour voir les autres.

ext/elephpant

Novembre 2007 – Noplay: Heureux papa

Je suis l'heureux papa depuis quelque jours d'un éléphant PHP. Il se porte bien et apprécie beaucoup la compagnie des étudiants (qui après deux semaine intensive de PHP ont parfois des envies de meurtre vis à vis de ce pauvre éléphant).

Par contre il est un peu polisson et n'a pas put s'empêcher de propager sa belle couleur bleu partout.

Je tiens à remercier Damien de Nexen Service et Vincent Pontier pour ce beau cadeau à la communauté.

http://www.nexen.net/17215-ext/elep...

Novembre 2007 – PHP Index: Zend Core for i5/OS et Zend Studio for Eclipse

ITJungle vient de publié un article apportant quelques informations sur Zend Core for i5/OS, la version compatible avec le System i d'IBM. Zend Core for i5/OS sera basé sur la version 2.5 de Zend Core et apportera quelques nouveautés parmis lesquelles :

  • Il ne sera plus nécessaire d'installer MySQL séparement. La base de données sera installée en même temps que Zend Core.
  • Il sera possible de connecter les applications PHP tournant sur des serveurs System I à une base de données SQL Server sous Windows.

A noter également que Zend travaille sur Zend Studio for Eclipse, une mise à jour de Zend Studio permettant de développer en PHP sous Eclipse. Ce nouvel outil simplifiera le développement HTML grâce à une interface drag-and-drop permettant aux développeurs de mettre en place facilement des fonctionnalités WYSIWYG.
Une version beta de ZenStudio for Eclipe supportant i5/OS est dès à présent disponible. Cette version n'est pas un plugin Eclipe et doit être utilisée séparement. Une version sous forme de plugin Eclipse devrait être disponible début 2008.

Source : http://www.itjungle.com/

Novembre 2007 – Prendre un Café: Changement de fourrage, tout ça

Comme on dit dans le jargon, je suis officiellement à l'écoute du marché. Le traditionnel CV est par là, ou encore ici.

Je me débrouille en PHP et avec le framework Symfony, j'aime bien concevoir de chouettes applis qui fonctionnent et qui sont maintenables, j'aime beaucoup les petites équipes agiles, j'adore appliquer les bonnes pratiques de conception et respecter les standards du web. Je place au centre de tout le respect du client et les processus de conception collaborative.

Si vous êtes intéressé,vous pouvez me joindre en passant par la case contact :)

Edit : J'ai une extinction de voix carabinée, merci d'éviter le téléphone ou la visioconférence le temps que je me remette d'ici quelques jours ;)

Novembre 2007 – Hello Design: Les ElePHPants PHP de L'AFUP

Les Elephpants PHP de L'AFUP sont passés par chez moi pour se rendre ensuite au Forum PHP 2007 à Paris.

Certains Elephpants un peu pressés d'arriver, ont voyagés en transport Express.

 

 

 

Novembre 2007 – Rom's blog: PHP4, nostalgie quand tu nous tiens!

Je suis actuellement en train de compiler les add-ons PHP pour WampServer2 et hier j’étais sur les différentes versions de PHP. J’ai commencé par faire les dernières versions de chaque branche ce qui m’a amené à retravailler sur des vielles versions de PHP4, genre PHP 4.1.2 ou PHP 4.2.3.

C’est trop marrant! Qui se rappelle qu’à l’époque les erreurs s’ouvraient en pop up sur le serveur?

Exemple :

screenshot pop php4

.. et regardez le message d’erreur : “Error parsing ../wampmanager.conf on line 43 in Unknown on line 0″
PHP ne sait même pas où il est à cause d’un simple include.

C’est là qu’on se rend compte que PHP vient de très loin. Arrivé maintenant à un stade vraiment professionnel, il a commencé comme projet étudiant. Cela permet de mieux comprendre les différentes étapes/évolutions qui ont jalonné son parcours…

Novembre 2007 – PHP Index: Intégration de Propel avec Zend Framework

Un article publié sur le site de Zend, propose d'utiliser un plugin afin d'intégrer Propel avec Zend Framework.

Propel est un framework ORM (Object-Relational Mapping) pour PHP5, qui facilite l'utilisation des bases de données dans des applications PHP.

Un premier article expliquait comment intégrer et utiliser propel dans une application développée avec Zend Framework. Mais la méthode décrite dans cet article ne permet pas à l'application de connaître quel modèle est à utiliser.

Une astuce pour régler ce problème est d'utiliser le système de plugins de Zend Framework, qui permet d'exécuter du code lors de certains événements.

L'article
Documentation Zend Framework sur les Plugins
Propel

Novembre 2007 – PHP Québec: 3/12 9:00 Conférence PHP Québec 2008

Conférence PHP Québec 2008 – Faites-le avec PHP

PHP Québec est fière de présenter la Conférence PHP Québec 2008.

Pendant trois jours, les experts mondiaux du PHP et des bases de données
seront réunis pour partager leur expérience, proposer des solutions à
des problèmes récurrents dans l'industrie et présenter de nouvelles
techniques qui vous permettront de rester à l'avant-garde. C'est
l'occasion rêvée de rencontrer ces experts, de parfaire vos
connaissances et d'élargir votre réseau de contact. Cette année
l'organisation innove en vous proposant une formule améliorée :

- Les PHPLabs
- Les 2 jours de conférences
- Un salon de l'emploi
- Un cocktail
Des activités de clôture

Quand : Du 12 au 14 mars 2008
Lieu : Au centre-ville de Montréal, à l'hôtel Sofitel, au 1155 Sherbrooke
Ouest

Pour plus d'informations ou pour vous inscrire, visitez le site Web de
la Conférence PHP Québec 2008 au :

http://conf.phpquebec.com/

Faites vite, les places sont limitées!

======================
Conférence PHP Québec 2008
======================

Les jeudi 13 mars et vendredi 14 mars 2008 dès 8:00

Deux jours de conférence avec les plus grand experts du PHP sur des
sujets variés étalés sur 3 pistes de sessions :

PHP Au delà de la théorie
Techniques avancées
Accessibilité des données

Pour plus d'informations ou pour vous inscrire, visitez le site Web de
la Conférence PHP Québec 2008 au :

http://conf.phpquebec.com/

=======
PHPLabs
=======

Le mercredi 12 mars, dès 8:30

Plus que des sessions ordinaires, les PHPLabs sont des ateliers
pratiques qui mettent à profit l'expérience et la matière grise de
chacun pour résoudre des problèmes et soulever des questions à l'aide
d'exemples issus du vrai monde.

Pour plus d'informations ou pour vous inscrire, visitez le site Web de
la Conférence PHP Québec 2008 au :

http://conf.phpquebec.com/

=============
Salon de l'emploi et cocktail
=============

Le mercredi 12 mars à 17:00

Que vous soyez employeurs, recruteurs ou chercheurs d'emploi, PHP Québec
facilite votre rencontre avec son tout nouveau salon de l'emploi. C'est
l'occasion idéale de rencontrer des mordus de technologies ou de donner
un nouveau souffle à votre carrière. Le salon est ouvert à tous et sera
suivi d'un cocktail où les discussions se poursuivront dans un cadre
moins formel.

Des places sont disponibles pour les entreprises qui souhaitent avoir
leur kiosque au salon de l'emploi. Pour plus d'informations ou pour vous
inscrire, visitez le site Web de la Conférence PHP Québec 2008 au :

http://conf.phpquebec.com/

==============
Activités de clôture
==============

Après 3 jours chargés de conférence, arrive le temps de décompresser.
Tous sont les bienvenus aux activités et l'inscription sera effectuée
lors de la Conférence avant 15:00 le vendredi 14 mars.

Souper de clôture

Le vendredi, après la conférence, l'organisation vous convie au souper
de clôture de la conférence, qui aura lieu dans un lieu divulgué
ultérieurement. Pour les irréductibles, la soirée se poursuivra
jusqu'aux petites heures dans un bar de Montréal.

Cabane à sucre

Le samedi matin, retour à l'hôtel d'où le départ se fera à 10:00 en
direction d'une cabane à sucre de la banlieue. C'est l'occasion de
vivre une expérience typiquement québécoise et inoubliable pour les
visiteurs tout en visitant un coin de pays.

Pour plus d'informations ou pour vous inscrire, visitez le site Web de
la Conférence PHP Québec 2008 au :

http://conf.phpquebec.com/

Novembre 2007 – z-f.fr: Intégrer Propel et le ZF

Forum: Brèves
Auteur: philippe
Écrit le: Thu, 08 Nov 2007 09:42:53 +0100
Dernier message: Thu, 08 Nov 2007 09:42:53 +0100

Novembre 2007 – jp.fox: Sortie de PHP 5.2.5

PHPCette version se contente, et c'est déjà bien, de corriger une soixantaine de bogues dont 7 en rapport avec la sécurité. Autrement dit, il est vivement recommandé de passer à cette version si vous êtes déjà en version 5.2.x.

Pour ceux qui utilisent encore une version antérieure, un petit coup d'oeil aux guides de migration peut être très utile.

N'oubliez pas : PHP 4 n'évoluera plus après le 31/12/2007 et les correctifs de sécurité ne seront plus publiés après le 08/08/2008. Il est grand temps de passer à PHP 5

Novembre 2007 – PHP Index: PHP 5.2.5

L'équipe de développement de PHP vient d'annoncer la sortie de PHP 5.2.5. Cette nouvelle version comporte plus de soixante correctifs et améliore la stabilité de PHP 5.2.x.

Parmi les correctifs, on notera :

  • La correction pour htmlentities et htmlspecialchars qui n'accepte pas de séquence multi-octect partielles.
  • La correction d'un dépassement de capacité pour les fonctions fnmatch(), setlocale() et glob().
  • La correction de dl() pour limiter la taille de l'argument à MAXPATHLEN.
La liste complète des modifications apportées par PHP 5.2.5 est disponible dans le changelog.

Télécharger PHP 5.2.5

Novembre 2007 – PHPortail: PHP 5.2.5 (12/11/07)

PHP 5.2.5 est maintenant disponible. Cette version améliore la stabilité de la série 5.2.x, avec plus de 60 corrections de bogues, dont plusieurs concernent la sécurité. Tous les utilisateurs de...

Novembre 2007 – PHPortail: La fin d'une saga (12/11/07)

Près d'un mois où je n'ai pas fait de nouvelle. Plusieurs raisons personnelles et professionnelles ont créé ces retards.

Nous allons avoir des nouvelles tous les lundis, mercredi et jeudi. ...

Novembre 2007 – PHPortail: PHP 5.3 : les premières versions (12/11/07)

PHP 5.3 est maintenant disponible en test sur PHP.net. Les codes sources ainsi que la version Windows sont disponibles sur le site snaps, et remises à jour toutes les huit heures.

Les...

Novembre 2007 – PHPortail: Les éléphpants ont débarqués (12/11/07)

Eh oui, ils sont arrivés...

Nous avons notre troupeau. Ils seront mis en tirage dans les prochains jours. Ils seront aussi en vente en ligne dans quelques jours, sur place dans les réunions...

Novembre 2007 – Rom's blog: 27 versions différentes de PHP, 17 de Apache et 6 de MySQL sur la même plateforme

Voilà ce qu’il sera possible d’installer sur la première version de WampServer 2.0

Je viens de finir la compilation de ces modules, travail fastidieux mais qui représente tout l’intérêt de la nouvelle version de WampServer.
La version de base sera fournie avec les dernières version de PHP, Apache et MySQL. En complément, il sera possible d’installer d’autres versions et switcher des unes aux autres en un click (comme actuellement avec l’addon PHP4).

Les versions disponibles seront :

PHP de 4.1.2 à 5.2.5
Apache de 1.3.35 à 2.2.6 avec SSL
MySQL de 4.1.2 à 5.0.45

Chaque version disposera de sa propre conf et de ses propres fichiers/bases de données. Chacun pourra ainsi reproduire le plus fidèlement possible son serveur de prod ou son hébergement mutualisé pour développer en local.

A suivre…

Novembre 2007 – PHPortail: Calendriers en ligne et sélecteurs de dates (13/11/07)

« Ce billet présente une vue détaillée d'applications de calendrier en Ajax, PHP, DHTML, etc., les outils et services associés, incluant l'habillage CSS de calendriers en ligne, et les services...

Novembre 2007 – PHPortail: Pour faire de meilleurs logiciels, vous avez besoin de moins de monde (13/11/07)

« Jusqu'à présent, la meilleure réponse est d'utiliser moins de programmeurs, et de faire avec ce qu'ils peuvent produire. Cela nous conduit immédiatement à des simplifications, et des...

Novembre 2007 – PHPortail: Le logiciel libre en entreprise 2007 (13/11/07)

Independent Oracle Users Group (IOUG) publie une étude sur les logiciels libres en entreprise, baptisée "Open Source in the Enterprise: New Software Disrupts the Technology Stack.". L'étude est...

Novembre 2007 – PHPortail: Les superglobales (13/11/07)

« Cet article est destiné aux développeurs PHP qui ne sont pas encore familiers avec les variables superglobales de PHP. L'utilisation de ces variables est fondamentale au développement PHP, mais...

Novembre 2007 – PHPortail: Imagick 2.0.1 (13/11/07)

Après plusieurs années en version bêta 0.9.x, Imagick est finalement en version stable avec la sortie de la version 2.0.0 et suivie quelques jours après par la version 2.0.1 qui corrige 4...

Novembre 2007 – PHPortail: PHPMyVersion 0.1.1 (13/11/07)

« PHPMyVersion est conçu pour garder la trace des modifications dans le modèle de conception et dans les données. Les développeurs peuvent l'utiliser pour surveiller les évolutions durant le...

Novembre 2007 – PHPortail: PMO v 0.10 (13/11/07)

« J'ai l'honneur de vous annoncer que la nouvelle version de PMO en 0.1 vient de sortir.
Il y a eu beaucoup de corrections de bogue qu'il serait fastidieux de lister ici. Globalement, de nouvelles...

Novembre 2007 – PHPortail: Installer une plate-forme de développement PHP sur Mac OS X (Leopard) (13/11/07)

"Mac OS X est une excellente plate-forme de développement pour travailler avec PHP. Leopard vient avec Apache, PHP et de nombreux outils de développements, tels que subversion, préinstallée....

Novembre 2007 – PHPortail: Compiler PHP-GTK2 sur Unix (14/11/07)

« Avec les utilisateurs qui veulent simplement compiler [leur Gtk2] je reçois beaucoup de questions sur comment configurer un système et compiler PHP-GTK2. En fait, je commence à être fatigué...

Novembre 2007 – PHP Index: Débugger votre application en utilisant Vim et XDebug

Sam Ghods explique comment installer et paramétrer l'éditeur Vim et l'extension PHP XDebug pour débugger votre code PHP directement sous Vim.

Grâce à un plugin nommé Debugger.vim, vous transformez Vim en client et XDebug en serveur. Lorsque vous éditez vos fichiers sous Vim, vous n'aurez plus qu'à appuyer sur F5 pour faire la connection entre Vim et XDebug afin d'afficher les éventuelles erreurs.

Vous pouvez utiliser cette astuce même si plusieurs développeurs se connectent au même serveur, en attribuant, pour chacun, un port de communication différent.

L'article

Novembre 2007 – PHP Index: Sitepoint : Utilisation du cache pour résoudre des problèmes de performance PHP

Dans un article publié sur Sitepoint, Ben Balbo explique comment utiliser des systèmes de cache avec PHP dans le but d'améliorer les performances d'une application.

Dans un premier temps, il explique le fonctionnement du cache d'un navigateur et les deux manières de l'utiliser : les méta-tags en HTML et les HTTP headers.

Il présente ensuite différentes problématiques d'utilisation d'un cache :

  • Comment mettre en cache des téléchargements de fichier avec Internet Explorer.
  • Comment utiliser la bufferisation.
  • Utilisation du cache avec un moteur de template.
  • Comment mettre en cache une partie précise d'une page qui ne change jamais.

Il termine enfin en expliquant comment utiliser le package Cache_Lite de PEAR pour mettre en place un cache côté serveur.

Lien vers l'article:
Cache it! Solve PHP Performance Problems

Novembre 2007 – tigrou/pwet.fr: Apache Rewrite rules to replace wildcard based url translation in eZ Publish 3.10.0

Wildcard based URL translation has been removed in eZ Publish 3.10.0. In the upgrading from eZ Publish 3.9.x to 3.10.0 documentation on eZ.no, we can now read (I think this note was not there when I upgrade at the beginning of October...) :

Before continuing, note that eZ Publish 3.10.0 does not support wildcard based URL forwarding anymore. This possibility was removed when implementing the multilingual URLs functionality. However, it might be added in the future (refer to changelogs and latest release announcements for more information).

Wildcard based URL translation is (was...) a very easy to use way to install a kind of simple rewriting rules on a site from eZ Publish almost without technical knowlegde. I use this feature to shorten long URLs when using the layout module for specific RSS feeds for instance.

Wildcard rules are still in the database, so I wrote a small script that transforms eZ Publish wildcard rules into apache rewrite rules . You can download the script , you just have to run it from eZ Publish root directory. For me, it generates something like :

#### Auto-generated rules ####
## you may need to load mod_rewrite
## you may need to uncomment the following line
# RewriteEngine on
### Direct rules
## for those rules, you need to load mod_proxy
# eZ Publish rss/feed/tag/* -> layout/set/rss/content/view/rsspost/{1}
RewriteRule rss/feed/tag/(.*) layout/set/rss/content/view/rsspost/$1 [P,L]
# eZ Publish rss/feed/commentaires/* -> layout/set/rss/content/view/rssco/{1}
RewriteRule rss/feed/commentaires/(.*) layout/set/rss/content/view/rssco/$1 [P,L]
# eZ Publish rss/feed/trackback/* -> layout/set/rss/content/view/rsstb/{1}
RewriteRule rss/feed/commentaires/(.*) layout/set/rss/content/view/rsstb/$1 [P,L]

You can put the generated code in the apache configuration, but you'll probably have to tweak rewrite rules . Of course mod_rewrite has to be loaded in apache (you already have it in a Virtual host setup ) and for direct rules (kind of alias without redirect) you also need mod_proxy to be loaded. As I use apache 1.3 under Ubuntu, I run these commands as root :

$ sudo apache-modconf apache enable libproxy
Replacing config file /etc/apache/modules.conf with new version
$ sudo /etc/init.d/apache reload

Novembre 2007 – Kamelot Blog: ApéroPhp 2008

Après une année 2007 de "repos" Il est peut-être temps de lancer la saison 2008 des apéroPhp belges. J'aimerai en avoir 2 en vlaamsonnie, 2 en wallonderen et 2 à Bruxsel. Je vous propose déjà de bloquer le dernier vendredi de chaque mois impair. ce qui nous ferai.

  • le 25 janvier à Bruxelles
  • le 28 mars
  • le 30 mai
  • le 25 juillet
  • le 26 septembre
  • et le 28 novembre

Reste plus qu'a trouver les lieux et les organisateurs locaux.

J'imagine bien Bruxsel(2x), Namur ou Louvain-la-Neuve. Leuven, Brugges ou Gent, et Mons ou Soignies

Si vous connaissez un lieu tranquille, dans ces villes ou ailleurs, laissez moi un commentaire. Si la date ne convient pas, et que vous avez une proche à proposer, celle que je propose sont des références d'espacement. Il n'y a aucun problème de proposer une autre date dans les alentours.

Les conditions à remplir pour un apéro PHP réussi.

  • Un espace pour 5 à 25 personnes
  • Un fond sonore modéré
  • Une disposition permettant un minimum de mobilité (généralement les meilleurs discussions sont dans des sous groupes de 4-5 personnes.)
  • Une ville un peu centrale : sorry pour Arlon , De Panne, Tournai et Antwerpen.
  • Un organisateur local (pour pouvoir bouger après avec ceux qui le veulent)
  • Pas d'ordinateur.
  • De la bière et du coca.
  • Des participants de tout niveau de compétence. (J'ai connu de très bon apéro php avec des gens qui touchait a peine au langages mais qui étaient intéressé par les discussion car ils bossent avec des codeurs)

Pour lancer la balade je vous propose donc de se retrouver le 25 Janvier à Bruxsel.

Les autres apéroPHP : http://www.aperophp.net

Novembre 2007 – Rom's blog: Premier test de WampServer 2 par Cyril

L’article se trouve sur son blog :

http://www.cyruss.com/blog/index.php?2007/11/15/235-j-ai-teste-wampserver-2-en-avant-premiere

Novembre 2007 – Apprendre-PHP.com: Forcer le téléchargement d'un fichier

Cette portion de script présente un moyen simple et efficace de forcer le téléchargement d'un fichier. Comment ça forcer un téléchargement ? Prenons l'exemple concret d'un fichier PDF car c'est celui qui semble le plus approprié pour ce genre de code. L'utilisation d'un document PDF peut varier d'un utilisateur à un autre. En effet, certains pourront l'ouvrir directement dans leur navigateur via un plugin intégré tandis que d'autres seront obligés de le télécharger puis de l'ouvrir avec Adobe Acrobat Reader par exemple. Afin d'uniformiser ces différents comportements, nous pouvons choisir de forcer le téléchargement du document.

Novembre 2007 – Apprendre-PHP.com: Renvoyer un code d'erreur HTTP 404

Cette portion de script permet de retourner un véritable code d'erreur 404 lorsqu'un fichier n'est pas trouvé sur le serveur et ne peut être affiché au client. Retourner un header 404 permet notamment au serveur web de logguer les erreurs 404, ce qui est particulièrement utile pour la génération de statistiques via Urchin, AWStats ou OSL. De plus, cela permet de personnaliser ses propres erreurs 404 au moyen de la commande ErrorDocument 404 /erreur404.html dans le fichier .htaccess du site.

Novembre 2007 – Apprendre-PHP.com: Raccourcir une chaine de caractères

Voici une fonction très pratique qui permet de tronquer une chaine de caractères trop longue et de lui suffixer trois petits points. C'est très utile lorsque l'on désire afficher un résumé d'un texte. La fonction raccourcirChaine() prend deux paramètres : le premier est la chaine de caractères dont il faut réduire la taille, et le second est la taille maximale de la nouvelle chaine tronquée.

Novembre 2007 – Apprendre-PHP.com: Récupérer l'extension d'un fichier

Lorsque l'on travaille sur des fichiers avec PHP, il arrive très souvent de vouloir récupérer l'extension d'un fichier en vue d'effectuer des tests. Il existe différentes manières de récupérer une extension de fichier. Par exemple, avec une expression régulière ou bien l'utilisation des fonctions de manipulation des chaines de caractères. Mais il existe aussi la fonction native pathinfo(), peu connue des développeurs, qui répond à ce besoin.

Novembre 2007 – Apprendre-PHP.com: Vérifier qu'une chaine de caractères est un entier

Lorsque l'on développe une application, il n'est pas rare d'avoir à manipuler des entiers sous forme de chaine de caractères. Qui plus est de s'assurer que l'on reçoit bien une valeur entière et non un mot, un nombre à virgule, un script malicieux où je ne sais quoi encore... Pour cela, PHP introduit nativement la fonction ctype_digit() qui se charge de vérifier que son paramètre d'entrée est une valeur entière. Nul besoin donc de réinventer la roue en utilisant ses propres fonctions utilisateurs ou bien encore une expression régulière qui sera plus gourmande en temps de traitement.

Novembre 2007 – Apprendre-PHP.com: Vérifier un format d'adresse e-mail par regex

Il n'est pas rare d'avoir à manipuler des adresses e-mails sur Internet. Le premier besoin que l'on rencontre avec ces données est de pouvoir valider leur format. C'est à dire de vérifier qu'elles soient conformes à un motif particulier. Un moyen d'y arriver est d'avoir recours aux expressions régulières particulièrement puissantes et évoluées en PHP. La fonction qui va suivre a été réalisée à partir d'une regex d'Yves Maistriaux, webmaster du site Expreg.com et référence francophone dans ce domaine.

Novembre 2007 – Apprendre-PHP.com: Vérifier un format d'adresse e-mail avec Filter

Les adresses e-mails sont chose courante sur le Web et bien évidemment nous avons affaire avec elles dans la plupart des applications Web : espaces membres, envois de newsletters, webmails... Lorsque l'on récupère une adresse courriel (via un formulaire par exemple), il faut tout d'abord s'assurer que son format est conforme à un motif bien précis. Le langage PHP introduit dans sa version 5.2 PECL l'extension Filter qui, comme son nom l'indique en français, permet de filtrer et de nettoyer des variables de types différents. Le type "Email" figure parmi eux. Cette portion de code explique donc comment vérifier le format d'une adresse e-mail au moyen de l'extension Filter de PHP.

Novembre 2007 – Apprendre-PHP.com: Interdire l'accès à un répertoire d'un serveur Apache

Voici une petite astuce très pratique qui vous permettra d'empêcher complètement l'accès à un répertoire de votre site Web par le protocole HTTP. Elle vous permettra ainsi de garantir un niveau de sécurité supérieur de votre application Web, notamment si celle-ci renferme des informations sensibles qui ne doivent pas être diffusées au grand public. La seule et unique ligne de code ci-dessous est à placer au sein d'un fichier .htaccess lui même placé à la racine du répertoire à protéger. En cas de tentative d'affichage de l'index, d'un sous-répertoire ou bien d'un fichier présent dans ce dossier sécurisé, Apache renverra une erreur de type 403 Forbidden.

Novembre 2007 – Apprendre-PHP.com: Empêcher la mise en cache dans le navigateur

Cette fonction permet d'empêcher la mise en cache de vos documents Web dans le navigateur. Cela peut-être particulièrement pratique lorsque vous forcer le téléchargement de fichiers temporaires ou bien lorsque vos pages sont très régulièrement mises à jour. Pour rappel, la procédure empecherLaMiseEnCache() doit être appelée avant tout envoi au navigateur. C'est à dire avant toute balise HTML, espace blanc, echo(), print()...

Novembre 2007 – Noplay: PHPUnit 3.2

Sebastian Bergmann vient de publier PHPUnit 3.2. Cette nouvelle version de l'outil de test unitaire le plus utilisé dans le monde PHP apporte essentiellement des outils d'analyse de code. Les développeurs ont désormais à leur disposition des calculs de métrique de code, la détection des copié collé et la détection de certaines erreurs.de conception du code (par exemple afficher une erreur si une classe possède trop de méthode public). L'intégration avec Selenium RC à elle aussi subit un lifting.

Le seul regret est que la documentation n'est pas encore complète sur les nouvelles fonctionnalités mais cela devrait être corrigé très prochainement.

- Le site officiel de PHPUnit : http://www.phpunit.de
- L'annonce : http://sebastian-bergmann.de/archiv...

Novembre 2007 – Kamelot Blog: Warning: copy() failed to open stream: Permission denied sur un fichier is_readable

[php]
<?php 
$fn = 'file.txt';

echo '<br />is_file: '; $r = is_file($fn); var_export($r);
echo '<br />is_executable: '; $r = is_executable($fn); var_export($r);
echo '<br />is_readable: '; $r = is_readable($fn); var_export($r);
echo '<br />is_writable: '; $r = is_writable($fn); var_export($r);
echo '<br />is_resource: '; $r = is_resource($fn); var_export($r);
echo '<br />filetype: '; $r = filetype($fn); var_export($r);
copy($fn,'cp'.$fn);

highlight_file(__FILE__);
?>

Résultat :

is_file: true
is_executable: false
is_readable: true  <--- 
is_writable: true   <--- 
is_resource: false
filetype: 'file'
Warning: copy(file.txt) function.copy: failed to open stream: Permission denied in C:\...\test.php on line 10

Qu'est-ce qui peut faire planter un copy d'un fichier readable et d'une cible writable ?

Et bien le test est fait sous vista et le fichier à copier est "chiffré"

Reste à trouver une chose, comment tester le fichier pour savoir s'il est "chiffré" avant de tenter la copie.

J'ai essayé un dernier truc : chiffrer le script lui même.

Résultat, php ne sait même plus le lire

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

Conclusion Ce problème reste mineur parce que il ne se présente qu'en développement (malgrès les récentes annonces, je n'oserai une prod sur windows) mais c'est un problème bête qui m'est arrivé au cours d'un développement et on perd inutilement du temps à chercher l'origine de l'erreur.

Novembre 2007 – PHPortail: Sécurité : HumanAuth (19/11/07)

« GigoIt's HumanAuth est basé sur les concepts présentés par KittenAuth.com. HumanAuth supporte les spécifications ADA et Section 508, avec une forte sécurité et le marquage des images...

Novembre 2007 – PHPortail: Solar version 1.0 (19/11/07)

Paul Jones annonce la publication de la version 1.0 de Solar, un cadre d'application en PHP 5.

« La première version complète est la nouvelle version Solar-1.0.0alpha1 de ce dimanche. Nous...

Novembre 2007 – PHPortail: TYPO3 4.1.3 (19/11/07)

La version 4.1.3 de TYPO3 est maintenant disponible. Il s'agit d'une version de maintenance pour apporter des corrections à des bogues.

Novembre 2007 – PHPortail: Symfony 1.0.8 (19/11/07)

La nouvelle version du framework symfony est disponible.

Cette version estampillée 1.0.8 vient principalement corriger une dizaine de bugs, et changer certains chemins, jusqu'à maintenant...

Novembre 2007 – PHPortail: Companion.JS, le Firebug-like pour IE ! (19/11/07)

À mon travail, nous faisons une application qui utilise beaucoup de JavaScript (en plus de PHP bien sûr). Avec Firefox, c'est très simple de faire la correction du JavaScript. Nous devons aussi...

Novembre 2007 – PHPortail: Claroline 1.8.8 disponible (19/11/07)

« La nouvelle version de Claroline (1.8.8) apporte, en plus des habituelles corrections, les contributions suivantes :

* les traductions complètes de l'espagnol et du galicien

* la...

Novembre 2007 – PHPortail: Open Flash Chart (19/11/07)

Open Flash Chart est une bibliothèque qui produit des graphiques en format Flash. Outre une esthétique moderne, la bibliothèque permet aussi des effets d'affichages qui augmentent l'attrait des...

Novembre 2007 – tigrou/pwet.fr: Le bug d'Internet Explorer sur le téléchargement de fichier en PHP (et autres ...)

Via PHPIndex , j'ai lu aujourd'hui un article très intéressant sur la mise en cache côté serveur et la manipulation du cache côté client en PHP plus une introduction au package PEAR Cache_Lite . Hormis ce dernier chapitre, la majeure partie de l'article est applicable avec d'autres langages pour peu que ceux-ci soient capable d'envoyer des en-têtes HTTP au navigateur via un équivalent de la fonction header .

Mais au détour de cet article, en page 2 pour être exact, l'auteur explique un des bugs d'Internet Explorer intervenant lorsqu'on force le téléchargement d'un fichier via un script côté serveur en employant un code du type suivant (souvent employé lors de la génération de d'exports en tout genre) :

<?php
// différentes opérations
header( 'Content-Disposition: attachment, filename=fichier.ext' );
// ici je génère mon fichier
// ...
?>

L'envoi d'un en-tête de ce type provoque sous IE un comportement complètement aberrant. En fait, ce navigateur (si on peut appeler cela comme ça) fait une première requête pour télécharger le fichier puis en exécute une seconde avant de proposer effectivement à l'utilisateur d'ouvrir le fichier et donc si vous envoyez d'autres en-têtes pour éviter la mise en cache côté client du fichier et bien IE efface le fichier qu'il vient de télécharger lors de la seconde requête HTTP !

La solution est donc d'envoyer des en-têtes HTTP indiquant la mise en cache du fichier généré soit de manière permanente si celui-ci ne change pas (via les en-têtes Pragma et Cache-Control) ou sur une durée plus moins longue (via l'en-tête Last-Modified)... Voila une belle Microsofterie à classer dans un coin de la tête sous peine d'y perdre encore 2 bonnes heures la prochaine fois...

Novembre 2007 – PHP Index: Copix 3.0.1

Le framework PHP Copix est disponible en version 3.0.1.

Cette version contient essentiellement des correctifs ainsi que des modifications mineures d'ergonomie dans l'écran d'administration des modules.

Pour des raisons de compatibilité avec certains hébergeurs, cette version propose également un driver alternatif pour accéder aux bases de données MySql, qui ne dépend plus de PDO.

Site officiel - http://www.copix.org

Téléchargements - http://www.copix.org/index.php/wiki/Telechargements

Proposé par Gérald Croës

Novembre 2007 – Kamelot Blog: Il est là !

Téléchargez WampServer 2

ATTENTION : N'installez pas WampServer 2 par dessus WAMP5. Si vous avez une version de WAMP5 installée, sauvegardez vos données, desinstallez la, et supprimez le répertoire de WAMP5 avant d'installer WampServer 2.

WampServer 2.0 inclus :

* Apache 2.2.6
* MySQL 5.0.45
* PHP 5.2.5

Novembre 2007 – PHP Index: Utiliser Silverlight avec PHP

Justin Whitney propose sur le site RIA Development Center un tutoriel pour construire pas à pas une application Silverlight simple en utilisant uniquement XAML, JavaScript et PHP.
Le but est de découvrir les principes clés du développement d'une application Silverlight et de l'intégrer dans une application PHP.

Au programme de ce tutoriel :

  • Etape 1 : Création d'une simple page avec un composant XAML
  • Etape 2 : Ajouter des événements souris
  • Etape 3 : Utiliser PHP comme source XAML
  • Etape 4 : Créer dynamiquement du code XAML avec PHP

L'auteur propose en guise de conclusion une série de liens vers d'autres articles et des exemples pour approfondir l'utilisation de Silverlight avec PHP.

Lien vers l'article : PHP Developers Don't Need Silverlight—Or Do They?

Novembre 2007 – Rom's blog: WampServer 2 est sorti!

Ca y est,
après plus de 6 mois de travail, la nouvelle version de WampServer (aka WAMP5) est sorti.
On va maintenant entrer dans la phase “et si…”, “tu aurais dû…” ou encore “pourquoi…” :D

Voici le communiqué officiel :

Nouvelle version majeur de WampServer 2

La plate forme professionnelle Open Source pour travailler avec PHP MySQL

Installer plusieurs versions de PHP, MySQL et Apache sur la même machine, pour tester les applicatifs Web, c’est désormais possible avec WampServer 2.

Paris, Forum PHP, le 21 novembre 2007 — Edité par l’organisme de formation Anaska, spécialiste des technologies du libre, WampServer permet d’installer et de gérer plusieurs versions d’Apache, MySQL et PHP sur un Os Windows afin de développer et tester des applications en local.

Avec plus de 7000 téléchargements et plus de 3 millions d’installations, WampServer est d’ores et déjà soutenu par une vaste communauté. La version 2 va offrir aux professionnels une plate forme indispensable pour assurer des développements de qualité.

WampServer 2 est une véritable refonte de l’application. Son noyau a été complètement revu afin d’optimiser l’ergonomie et offrir un environnement de développement plus souple et plus fonctionnel aux développeurs.

Wampserver 2 est la nouvelle version de la plateforme de développement WAMP5.

Une petite révolution pour les développeurs

La grande nouveauté de WampServer 2 réside dans la possibilité d’y installer et d’utiliser n’importe quelle version de PHP, Apache ou MySQL en un clic.

Les solutions actuellement disponibles sur le marché intègrent généralement les dernières versions de ces trois applicatifs, mais ne permettent pas de véritablement recréer un environnement de production.

Avec WampServer 2, chaque développeur va maintenant pouvoir reproduire fidèlement son serveur de production sur sa machine locale.

Les versions disponibles sont :
- PHP 4.12 à PHP 5.2.5
- Apache 1.3.35 à Apache 2.2.6
- MySQL 4.1.20 à MySQL 5.0.45

Parmi les avantages, le menu de WampServer, qui permet de gérer et configurer ses serveurs, devient dynamique, il se met à jour de façon asynchrone en rechargeant le contenu de des fichiers de configuration.
Un choix peut s’opérer entre une configuration simplifiée via le menu, ou pour les puristes une configuration pointue via les fichiers de configuration.

Cas d’utilisation : Installer PHP MySQL sous Windows

Le cas d’utilisation le plus courant de WampServer 2 consiste à installer un environnement PHP MySQL rapidement sur son ordinateur. Chaque jour plus de 7000 personnes installent WampServer 2.

Cas d’utilisation : Migrer des applications de PHP 4 vers PHP 5

La fin du support de PHP 4 étant annoncé les migrations vers PHP 5 se font de plus en plus fréquentes. Avec WampServer 2 il est possible d’installer son application sous PHP 4 puis de la tester sous PHP 5 d’un simple clic.

Cas d’utilisation : Reproduire en local les différentes plateformes de production

En fonction de ses projets ou de ses clients un développeur Web intervient généralement sur différentes plate formes de production avec des versions logicielles différentes. En fonction des versions certains comportements peuvent être différents, il est donc nécessaire de calquer sa plate forme de développement à sa plate forme de production.

Mettre en en place sur une même machine différentes configuration de PHP/MySQL est possible mais demande du temps à l’installation. WampServer 2 permet de le faire en quelques clics.

WampServer en chiffres

Le projet WampServer existe depuis Mars 2004. Il a été téléchargé plus de 3 350 000 fois (sources : SourceForge).
Il est actuellement téléchargé plus de 47 000 fois par semaine et figure dans le top 50 des projets les plus téléchargés de SourceForge.

WampServer est publié sous licence GPL

Novembre 2007 – PHP Index: TYPO3 4.2 alpha 2

Sortie de la version alpha 2 de TYPO3 4.2

TYPO3 a annoncé il y a quelques jour la sortie de la deuxième et avant dernière alpha de sa prochaine version 4.2 dont la date de sortie finale est estimée à fin janvier.

L'équipe de TYPO3 signale également le succès de l'ouverture de la mailinglist du core development au public avec de nombreuses contributions de la part des utilisateurs. Pour plus de renseignements sur cette mailinglist rendez-vous sur cette page.

Concernant la version alpha de TYPO3, les nouveautés sont les suivantes :

  • TYPO3 recquiert désormais PHP 5.2
  • Refonte du Backend
  • Version 2 de l'installeur
  • T3Editor servant à editer des TypoScript
  • Liens vers les enregistrements via le RTE
  • Amélioration du RTE
  • Mise à jour de librairies Javascript
Annonce
Téléchargement

Novembre 2007 – PHP Index: phpMyAdmin 2.11.2.2

La version 2.11.2.2 de PhpMyAdmin vient de sortir, elle corrige les failles XSS restantes sur la page de login qui n'ont pas eté supprimées dans la précédente version parue il y a neuf jours.

Cette vulnérabilité est considérée comme serieuse, il est donc fortement recommandé de mettre à jour votre version de PhpMyAdmin.

Description de la faille
Télécharger
Changelog

Proposé par Fabien LACHAUD

Novembre 2007 – z-f.fr: Les nouveautés à venir de PHP 5.3

Forum: Brèves
Auteur: philippe
Écrit le: Thu, 22 Nov 2007 08:41:44 +0100
Dernier message: Thu, 22 Nov 2007 22:09:03 +0100

Novembre 2007 – Arnaud Limbourg: WAMP2

A l'occasion du forum Romain Bourdon à annoncé la sortie de WAMP2 qui permet notamment d'installer des versions différentes de PHP et MySQL, tous les détails sont sur

http://www.wampserver.com

Novembre 2007 – Arnaud Limbourg: WAMP2

A l'occasion du forum Romain Bourdon à annoncé la sortie de WAMP2 qui permet notamment d'installer des versions différentes de PHP et MySQL, tous les détails sont sur

http://www.wampserver.com

Novembre 2007 – Apprendre-PHP.com: Forum PHP 2007 : le chrono s'arrête !

Ca y'est je suis enfin de retour du Forum PHP 2007 organisé par l'AFUP. Cette première édition a été riche en conférences et ateliers pratiques en tout genre ; et a accueilli pas moins de 450 personnes sur les deux jours. Un réel succès tant en terme de qualité que d'organisation générale :)

Novembre 2007 – PHP Index: Eventum 2.1

La nouvelle version d'Eventum 2.1 vient de sortir. Celle-ci corrige quelques bugs et ajoute ou modifie quelques fonctionnalités.

Eventum est un utilitaire de suivi flexible et facile à utiliser autant pour la gestion de report de bug que pour l'assignation de tâches dans une équipe, développé en PHP.
Cet outil est d'ailleurs utilisé par l'équipe du support technique de MySQL AB et leur permet un important gain de temps pour gérer leurs réponses selon eux.

L'utilisation d'Eventum nécessite une version de PHP minimale de 4.1.0, un serveur de base de données MySQL et l'activation des extensions suivantes :
- PCRE (activée par défaut dans les versions récentes de PHP)
- Session (activée par défaut dans les versions récentes de PHP)
- MySQL (Support intégré avec la plupart des versions PHP)
- GD

Le code source est sous licence GPL.

Site officiel
Télécharger
Changelog

Proposé par Clément Péronneaud

Novembre 2007 – Kamelot Blog: Apéro PHP de Bruxsels le 25 janvier prochain.

Import ICSImportez l'évènement dans votre calendrier

Apero PHPVoilà le premier apéro PHP belge de 2008 est fixé.

Nous nous retrouverons le Vendredi 25 Janvier 2008 à 19h.

où :

On change d'endroit on va à la bécasse
Poechenellekelder
5 Rue du Chêne, Eikenstraat
Bruxsels

On a maintenant un groupe PHPBelgium sur sur Facebook

Novembre 2007 – sahid.funraill.org: Hebergement pour développeurs

HostingRails.com, le meilleur hebergeur GNU/Linux

En debut d’apres-midi le blog était légèrement indisponible, j’etais en train de le migrer sur mon nouvel hebergeur, j’en ai profité pour passer la version 2.3 de wordpress.

Un billet publicitaire …mais il le faut !

En pleine recherche pour trouver un nouvel hebergeur, ayant un peu trop de problemes avec 1and1 et leur “jemenfoustisme” envers leurs clients, je suis tombé sur HostingRails.com, et vraiment ils offrent le meilleur rapport qualité/prix que je n’ai jamais vu.

J’avais envie de trouver un hebergement qui offre accès une base de données PostgreSQL ainsi que SSH sans avoir passer par un serveur dedié ou semi-dedié, un peu trop couteux pour mes besoins.

La petite histoire …

Si j’ai bien compris cette offre d’hebergement est issue de deux developpeurs passionnés de Ruby qui ont eu envie d’offrir un hebergement mutualisé de haute qualité afin de promouvoir Ruby On Rails

Les developpeurs d’autres languages de programmation ne seront pas en reste car l’offre propose Python, PHP, Perl, en plus de Ruby, ainsi que les serveurs Apache2 et LightHTTP (plus d’infos…), ainsi qu’un accès SVN…

Merci l’Euro fort … :)

Le truc pas mal si vous decidez d’opter pour cette offre, est le taux de change de l’euro qui est bien plus fort que celui du dollar… et mon hebergement de 2 années pour un peu moins de 70$ m’est revenu environ 47euros !.

Novembre 2007 – Arnaud Limbourg: Les podcasts du Forum PHP 2007

L'AFUP propose cette année les podcasts des conférences. Les workshops ne sont pas concernés, de par leur nature ils sont peu intéressant à écouter.

Vous pouvez vous abonner au flux en suivant ce lien: http://feeds.feedburner.com/forumphp2007

Les résumés: http://afup.org/pages/forumphp2007/resumes.php

MaJ 26 novembre: trois conférences sont disponibles sur le flux ainsi que sur la page de résumé des sessions.

MaJ 3 décembre: Trois nouveaux podcast sont disponibles.

MaJ: 17 décembre: de nouvelles conférences sont disponibles sur le podcast !

Novembre 2007 – Arnaud Limbourg: Les podcasts du Forum PHP 2007

L'AFUP propose cette année les podcasts des conférences. Les workshops ne sont pas concernés, de par leur nature ils sont peu intéressant à écouter.

Vous pouvez vous abonner au flux en suivant ce lien: http://feeds.feedburner.com/forumphp2007

Les résumés: http://afup.org/pages/forumphp2007/resumes.php

MaJ 26 novembre: trois conférences sont disponibles sur le flux ainsi que sur la page de résumé des sessions.

MaJ 3 décembre: Trois nouveaux podcast sont disponibles.

MaJ: 17 décembre: de nouvelles conférences sont disponibles sur le podcast !

Novembre 2007 – tigrou/pwet.fr: URL aliases transformed into numbers when upgrading to eZ Publish 3.10.0 ?

After the slowness of the PHP upgrade script and the disappearance of the URL Wildcard translation (these problems are corrected in the future 3.10.1 release ), eZ Publish 3.10.0 gives me another problem when I try to upgrade a 3.9.0 site . Running the updateniceurls.php PHP script transforms the nice URL aliases into numbers. Another developer seemed to have the same problem in the forum , but no solution was provided...

In fact, for this site I configured one var directory for each siteaccess (I don't know why...), so when I cleared the cache using ezcache.php script only the cache of the default siteaccess was really cleared and obviously I specified the one with a dirty cache to run upgrade scripts ! That's why updateniceurls.php didn't find the URL transformation commands and made strange things...

We can sometimes read " Remember to clear the cache", now I would say " Remember to clear the cache for all siteaccesses" :-)

Novembre 2007 – PHP Index: API Reflection pour PHP5

Reflection est une API orientée objet disponible depuis PHP5 servant à faire du reverse-enginering sur les fonctions, les classes ou les extensions.

Complète, cette API dispose d'un grand nombre de classes et de méthodes que vous pouvez utiliser pour accomplir vos propres tâches de réflexion.

Grâce à de courts exemples, l'article publié sur Devx.com vous permettra dans un premier temps de vous familiariser avec cette API.
Plus complet et très utile, un script détaillé vous permettra également de générer votre propre documentation en PHP.

Lire l'article
www.php.net

Novembre 2007 – PHP Index: PHP forum : sécurité et performances mis en avant

Le créateur du langage PHP, Rasmus Lerdorf, ouvre les portes du PHP forum en sensibilisant les développeurs sur les performances et les problèmes de sécurité liés au PHP.

Même s'il estime que c'est surtout du côté Javascript (qui est généralement utilisé pour l'interface cliente d'un serveur PHP) que les efforts d'optimisations doivent se faire, Rasmus nous explique que les performances PHP sont en partie liées à l'utilisation ou non d'un framework. Censés améliorer la productivité des développeurs, ceux-ci mal maîtrisés peuvent alourdir les applications. Dès lors, résoudre des problèmes de performances d'un framework codé par d'autres peut s'avérer difficile pour les moins expérimentés. Mieux vaut selon lui adapter un framework selon ses besoins, voir en créer un soi-même.

Toujours d'après lui, les problèmes de sécurité sont souvent liés à un manque d'éducation et de sensibilisation des développeurs à ce type de problèmes. Même si les applications ne peuvent être sûres à 100%, davantage de contraintes dans le langage et l'utilisation de frameworks pourraient à terme réduire considérablement les failles de sécurité.

Présent sur le forum en tant que principal sponsor, Adobe a tenu à démontrer la complémentarité de PHP et de Flex, le nouvel environnement de développement d'interfaces graphiques basés sur Flash. En effet, depuis la version 9 du Flash Player, les temps d'exécution du Javascript sont considérablement réduit grâce à un échange des données structurées et typées sous forme binaire, compressée, ce qui allège les échanges avec le serveur, optimisant la bande passante, et qui offre également des possibilités de manipulation des données sur le client bien plus avancées.

Lire l'article

Novembre 2007 – PHP Index: 01Net : Rasmus Lerdorf revient sur les enjeux de PHP

A l'occasion du Forum PHP, Rasmus Lerdorf, père de PHP et architecte chez Yahoo!, revient sur les évolutions et nouveautés de PHP 6 prévues pour début 2008 avec les premières versions béta.

Rasmus Lerdorf met en avant l’intégration de l’Unicode. Contrairement aux autres langages, les caractères chinois et japonais sont stockés sur plusieurs octets. Le code Unicode a donc été rajouté à chaque chaîne de caractères, ce qui impacte les nombreuses fonctions de traitements de chaînes de caractères.

En effet, avec l’émergence des pays comme la Chine sur Internet, il devient primordial pour les entreprises de se déployer vers ces pays, et pour répondre à ce besoin, l’internationalisation est le prochain défi de PHP.

Comme autre défi, il y a la sécurité avec notamment le développement d’applications Ajax avec son code javascipt qui peut ainsi ouvrir des failles de sécurité si le développeur n’y prend pas garde. Cependant, il s'agit d'un problème lié au Web de manière générale et non à PHP.

Rasmus Lerdorf explique le succès de PHP par son évolutivité et son adaptabilité aux problématiques du web tout en répondant aux besoins croissants des développeurs comme l’intégration de la programmation objet.

Quand à PHP 4, son maintien sera totalement terminé d’ici août 2008, il sera alors important de passer sur PHP 5 qui, pour rappel, apporte de réels gains de performance.

Retrouvez l'interview sur 01Net

Novembre 2007 – PHP Index: MySQL 6.0.3 Alpha

MySQL AB a publié une nouvelle version Alpha de MySQL 6. La nouvelle version du SGBD basée sur Falcon, le nouveau moteur de tables transactionnelles, est désormais disponible en téléchargement.

MySQL AB rappelle que, à ce stade, cette version ne peut être utilisée en production.

Télécharger MySQL 6.0.3
Manuel MySQL 6

Novembre 2007 – z-f.fr: Roadmap ZF mise à jour

Forum: Brèves
Auteur: philippe
Écrit le: Mon, 26 Nov 2007 14:51:48 +0100
Dernier message: Mon, 26 Nov 2007 14:51:48 +0100

Novembre 2007 – PHP Index: P4A 2.2

Createlabs vient de sortir la version 2.2 de P4A (PHP For Apllication), son framework orienté objet. Créé en 2003, ce framework est compatible avec les version 4.3 et supérieurs de PHP et permet de créer des applications web supportant l'utf8 et la plupart des sgbd utilsés aujourd'hui.

La bibliothèque javascript JQuery a été ajoutée dans cette nouvelle version, et de nouvelles fonctionnalités sont apparues : un sélecteur de couleur, un système d'upload de fichier ajax, une amélioration du système de popup et un système de prévisualisation de sons et de vidéos. La librairie getID3(), qui permet d'extraire des informations sur des fichiers multimedia, la libraire ADODB et un système d'autocompletion ont également été mis en place.


L'actu
Site officiel

Novembre 2007 – PHP Index: mnoGoSearch 3.3.6

mnoGoSearch, outil d'indexation et de recherche opensource, sort une version 3.3.6.

Changements notables :

  • le mode de stockage par défaut est DBMode=blob
  • DBMode=blob fonctionne avec SQLite3
  • le bug #2023 ("--disable-mysql-fulltext-plugin doesn't work") est résolu
  • recherche et indexation améliorées
  • DBMode=multi fonctionne désormais avec "GroupBySite=yes"
  • search.cgi utilise moins de mémoires en DBMode=blob

Changelog
Site officiel

Novembre 2007 – sahid.funraill.org: Support des espaces de noms en PHP

PHP 5.3, NameSpaces

Voila une très bonne chose, j’en avais déj entendu parlé mais il me semblait que c’était pour la version 6 de PHP, toujours est il que c’était véritablement un manque pour les développeurs PHP.

Donc partir de la version 5.3 on devrait retrouver le support des espaces de noms pour les fonctions, les classes, ainsi que les constantes. l’interet est assez important pour un langage comme le PHP et son nombre incroyable de bibliothèques.

Vous pouvez jeter un oeil sur la partie de la doc qui traite de se sujet
http://fr.php.net/manual/fr/language.namespaces.php

Via l’utilisation d’accesseurs

[code lang="PHP"]
<?php
require 'MyProject/Db/Connection.php';
use MyProject::DB;
use MyProject::DB::Connection as DbConnection;

$x = new MyProject::DB::Connection();
$y = new DB::connection();
$z = new DbConnection();
DB::connect();
?>
[/code]

Définition dans tout le script

[code lang="PHP"]
<?php
namespace A::B::C;

/* This function is A::B::C::fopen */
function fopen() {
/* ... */
$f = ::fopen(...); // call global fopen
return $f;
}
?>
[/code]

Novembre 2007 – Sorcellerie Web: Webappkit : un système de paquets pour PHP

logo PHPLe but de Webappkit, c'est de faciliter la réutilisation et le partage de briques logicielles PHP pour les applications web. Pour les développeurs, cela permet de se concentrer sur le code spécifique de l'application en facilitant l'intégration de librairies génériques existantes. Pour les simples bidouilleurs ou webmestres, de créer leur site en assemblant des applications existantes telles que blog, forum, suivi statistique etc.

C'est un de mes projets, et un logiciel libre hébergé sur Google Code. Initialement, il s'agissait d'un meta-framework permettant de définir une pile de scripts à exécuter pour une url ou une branche du site. Depuis la version 0.8, j'ai changé d'approche pour me concentrer sur un système de paquets nommés kits et qui peuvent contenir de la simple librairie (avec gestion des dépendances) à l'application complète.

Tout naturellement, j'ai organisé mes propres librairies sous formes de kits. Elles sont incluses dans l'archive disponible au téléchargement, et je les détaillerai ici prochainement. Télécharger webappkit (la version actuelle est 0.9 alpha). Le projet dispose de son propre blog (en anglais), pour en suivre l'actualité, ainsi qu'un groupe de discussion google.

Utiliser un kit de librairie

Commençons par détailler l'usage le plus simple : un kit de librairie. Concrètement, les kits sont des dossiers à regrouper dans un même repertoire accessible par vos scripts (généralement webappkit/). Pour charger un kit, il faut alors appeler :


/**
* inclusion des librairies du base de webappkit
*/
include_once('webappkit/include-me.php');
/**
* les librairies du kit sont alors incluses, ainsi que les dependances
*/
Webappkit::loadKit('mon_kit');

Les kits peuvent également être organisés en arborescence, un kit contenant lui même des kits ;il est alors possible de charger directement un sous-kit si l'on n'a pas besoin du paquet total. D'ailleurs, charger un kit ne chargera pas nécessairement tous ses sous-kits, il est possible de définir les sous-kits qui seront chargés lors de l'appel du kit parent.


/**
* chargement d'un sous-kit
*/
Webappkit::loadKit('mon_kit.un_sous_kit');

Dans les prochains billets, je détaillerai les usages plus avancés, ainsi que la construction des kits.

Novembre 2007 – Sorcellerie Web: PHP : classe datapath

Cette classe permet d'accéder à une variable multidimensionnelle (tableaux et objets) via une syntaxe d'adressage. Le but etant de pouvoir manipuler dynamiquement de tels objets.

Toutes les methodes de cette classe sont à usage statique, et travaillent directement sur une référence de la variable à manipuler.


$data=array(
  'membres'=>array(
    array('nom'=>'dupont','prenom'=>'michel')
    , array('nom'=>'martin','prenom'=>'roselyne')));

// ceci va afficher roselyne
echo datapath::get($data,'membres.1.prenom');

// ceci ajoute un element
$membre=array('nom'=>'dupuis','prenom'=>'pascal');
datapath::set($data,$membre,'membres.2');

Méthodes publiques

  • string separator([string $new]) : retourne le separateur actuel de segments de chemin (. par defaut
  • mixed get(mixed &$data, string $path) : retourne l'element pointé par le chemin $path.
  • bool set(mixed &$data, mixed $value, string $path) : definit la valeur de l'element pointé par le chemin $path au sein de la variable $data.
  • bool setRef(mixed &$data, mixed $ref, string $path) : definit par référence la valeur de l'élément pointé par le chemin $path au sein de la variable $data.

Quelques methodes supplémentaires sont prévues, notamment en ce qui concerne l'itération, l'application de fonctions, tri, test etc.

Est également prévu une extension de la syntaxe, avec l'ajout de jokers et/ou de selecteurs de valeur à la xpath.

Edit 28/11/2007 : Télécharger le kit de la classe (voir le billet Webappkit)

Novembre 2007 – PHP Index: Zdnet : PHP 6 prévu pour le premier trimestre 2008

Le Forum PHP réunissait, les 21 et 22 novembre à Paris, de nombreuses entreprises et experts de la plate-forme LAMP (Linux Apache MySQL PHP) comme Facebook, Yahoo, et WAT.tv (filiale de TF1).

Rasmus Lerdorf (créateur de PHP) et Andrei Zmievski (principal développeur de PHP 6) ont présenté la prochaine version PHP 6 avec notamment le support Unicode qui a demandé une réécriture complète de son code.

De plus, les fonctions majeures de PHP 6 seront reportées sur la version PHP 5.3 comme les « namespaces ». Les espaces de nommage ont pour but de regrouper logiquement les objets et des fonctions selon leur rôle : accès aux bases de données, génération de formulaires...
Ils permettent d'éviter les conflits de noms entre plusieurs parties d'un même projet, et ainsi rendent le code plus lisible et plus facilement réutilisable.

PHP 5.3 intégrera également un parser XML SAX (XMLReader) et une API permettant de générer simplement des fichiers XML (XMLWriter).

Par contre, c'est à partir de PHP 6 qu'on aura un cache de code intermédiaire natif. Jusqu'à présent, distribué sous forme de librairie, APC permet d'intercepter le code PHP avant sa compilation, et le stocke en mémoire.
Quelques exemples d'utilisation de la librairie APC : Test d'accélérateurs PHP, Mise en place d'une barre de progression avec PHP 5.2

Article complet sur Zdnet

Novembre 2007 – PHP Index: YAMMI! : Shell de conversion pour CakePHP et les migrations DB vers YAML

Sur le site de ZEND, Daniel Vecchiato propose un moyen de simplifier les migrations de données avec cakePHP avec un shell nommé YAMMI!.

Après avoir explicité ce qu'il entend par migration, il présente les fonctionnalités de YAMMI!, ses conditions d'utilisations et ses avantages en terme de rapidité de migration de données.

Pour plus d'informations, vous pouvez consulter l'article sur ZEND ou encore le blog 4webby sur lequel Daniel Vecchiato fournit une description plus détaillée ainsi que des saisies d'écrans.

Novembre 2007 – Dur Comme Faire: Présentations et podcasts du Forum PHP 2007 disponibles

Si, comme moi, la défense des privilèges intérêts vitaux de nos amis de la SNCF vous a empêché de vous rendre au Forum PHP 2007, consolez vous. L'AFUP vient en effet de mettre en ligne les premières présentations des conférences ainsi que les premiers podcasts. Les autres seront mis en...

Novembre 2007 – PHPortail: PHPUnit 3.2.2 publié (29/11/07)

En quelques jours, Sebastian Bergmann rend disponibles deux nouvelles versions de PHPUnit. PHPUnit est un environnement de tests unitaires pour PHP.

La version 3.2.apporte essentiellement des...

Novembre 2007 – PHPortail: Eventum 2.1 (29/11/07)

Eventum 2.1 vient de sortir. Cette version corrige quelques bogues, ajoute et modifie quelques fonctionnalités.

Eventum est un logiciel de suivi permettant la gestion de report des bogues ainsi...

Novembre 2007 – PHPortail: phpMyAdmin 2.11.2.2 (29/11/07)

La version 2.11.2.2 de PhpMyAdmin vient de sortir. C'est une version de correction de la sécurité.

Elle corrige une faille XSS importante sur la page de connexion. La version précédente...

Novembre 2007 – PHPortail: PHPIDS 0.4.3 (29/11/07)

Cette nouvelle version améliore la détection des intrusions et réduit énormément les fausses alertes. Elle permet aussi de détecter de façon encore plus efficace les injections SQL et les XSS....

Novembre 2007 – PHPortail: Firefox 3 : Beta 1 (29/11/07)

La première version bêta de Firefox 3 est enfin arrivée. Elle est déjà livrée en plus de 20 langues. Elle est disponible pour Windows, Mac OS X et Linux.

Firefox 3 corrigerait onze mille...

Novembre 2007 – PHPortail: Sécurité : Sécuriser son installation PHP avec PHPsecInfo (29/11/07)

PHPsecInfo est un utilitaire de sécurité qui analyse votre configuration PHP (dans php.ini), et identifie les points les plus importants, et met en lumière certains points à corriger.

Pour...

Novembre 2007 – PHPortail: Copix 3.0.1 (29/11/07)

Le cadre d'application Copix est disponible en version 3.0.1. Cette version inclut plusieurs correctifs d'ordre mineur ainsi que des modifications d'ergonomie dans l'interface d'administration des...

Novembre 2007 – PHPortail: WampServer2.0 (29/11/07)

À l'occasion du Forum PHP de Paris, Anaska (un organisme de formation) lance WampServer 2.
C'est en fait, une nouvelle version de WAMP5. Il permet d’installer et de gérer plusieurs versions...

Novembre 2007 – PHP Index: Symfony 1.0.9

La version 1.0.9 de symfony vient de sortir. Cette nouvelle version corrige quelques bugs.

Voici le changelog :

  • r6203: fixed typo in the submit_tag() of the UrlHelper?.php (#2493)
  • r6129: sfBrowser : ->click() also search for HTML button elements (#2342)
  • r6125: sfRouting : allow numeric parameters (#2317)
  • r6019: fixed sfPropelData::dumpData()
  • r6014: fixed radio button ids
  • r6013: fixed templates of login & secure actions of default module are exchanged
  • r6003,r6004,r6007,r6010: merged bug fixes from creole 1.1 + propel 1.2.1 + fixed date
  • r5997: fixed admin generator filters HTML defect (#1891)
  • r5856: fixed through_class in admin_*_list tags (#1612)
  • r5851: fixed sfZendFrameworkBridge autoload (#2314)
  • r5847: fixed typo in JavascriptHelper?.php (#2464)
  • r5845: fixed incomplete error message in sfRouting.class.php (#2465)
  • r5776: fixed typo (#2480)
  • r5772: backported i18n fixes from Prado + improved DateTimeFormatInfo
  • r5771: fixed typo in sfMessageSource_MySQL.class.php (#2477)
  • r5749: reverted YAML schema confusion
  • r5704: only logged in users are now timed out due to sf_timeout
  • r5701: fixed propel-build-all-load task execution


Site officiel

Novembre 2007 – Sorcellerie Web: Optimisation PHP : les chaines de caractères

Voici une petite astuce concernant les chaînes de caractères pour optimiser vos scripts PHP, que certains découvriront peut-être. Prenez l'habitude d'utiliser les apostrophes (simple quotes) plutôt que les guillemets (double quotes). Ceci parce que les chaines entre guillemets peuvent contenir des variables qui seront évalués à l'éxécution. Par exemple :

$uper_riche='Picsou';

// ceci affiche : Bonjour, je suis Picsou
echo "Bonjour, je suis $uper_riche";

// alors que ceci affiche : Bonjour, je suis $uper_riche
echo 'Bonjour, je suis $uper_riche';

// on peut utiliser les accolades pour acceder à des noms complexes
$Picsou->neveux=array('Riri','Fifi','Loulou');
// ceci affichera : Le second neveu de Picsou est Fifi, il en a trois
echo "Le second neveu de Picsou est {$Picsou->neveux[1]}, il en a trois";

Ce qui double son travail, car le code est d'abord interprété une première fois à la lecture du script et découpé en blocs sémantiques (chunks) : variables, chaines, instructions etc. Une chaine entre apasotrophes sera alors conservée telle quelle jusqu'à la fin de l'execution du script, alors qu'une chaine entre guillemets devra être interprétée à chaque évaluation. Par conséquent, il vaut mieux les éviter autant que possible. Par exemple :

/**
* on construit une chaine de caracteres dynamiques en separant bien les chunks variables des blocs statiques
*/
$html='<p>Bonjour, je suis '.$uper_riche.'</p>';

/**
* on ne force pas l'evaluation du parametre passe a une fonction
*/
echo 'Qui est le plus riche ? '.strtoupper('picsou !');

/**
* idem pour les clefs d'un tableau associatif
*/
echo $personnages['picsou']['neveux'][1];

C'est le genre de petites choses qui peuvent paraitre évidentes une fois devenues une habitude, mais qui ensuite évitent de plomber vos scripts inutilement.