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

Décembre 2007 – Rom's blog: Les locaux d’Anaska pris d’assaut!

Une intrusion fulgurante a eu lieu dans les locaux d’Anaska situés en région Parisienne le jeudi 29 Novembre 2007 au matin.
Vers 10h, un troupeau d’une centaine d’elephpants accompagné de leur leader, le maxi elephpant, s’est introduit par la force dans les bureaux et salles de formation de la société pour y prendre place et ne plus en sortir.
Pour le moment, nous ne recenssons aucun blessé mais de nombreux bureaux sont maintenant inutilisables et le stock de livres est inaccessible.

invasion d’elephpants

Afin de trouver une sortie à cette crise, la direction d’Anaska a décidé d’offrir un elephpant à toute personne suivant une formation PHP jusqu’au 31 Décembre 2007 (dans la limite des stocks disponibles).

Décembre 2007 – PHP Index: MemHT 3.4 Français

La version française de MemHT 3.4 vient de sortir.
Cette nouvelle version apporte son lot de correctifs et de nouvelles fonctions.

En voici le changelog ( en français :) )

- [New] Nouveaux langages Arabe, Bulgare, Danois, Hollandais, Hongrois, Russe
- [New] Nouvelles options d'enregistrement des utilisateurs:
- Les utilisateurs peuvent s'enregistrer avec ou sans email d'activation
- Les créations de comptes peuvent être modérées (par approbation de l'administrateur)
- [New] Catégories et sous catégories maintenant illimitées dans la section des téléchargements
- [New] Liste des tags complète en page d'accueil
- [New] Restriction des téléchargements au public, utilisateurs enregistrés et/ou groupes
- [New] RSS syndication dynamique
- [New] Nouveau système de statistiques
- [New] Nouvelle structure de la FAQ
- [Fix] Correctifs de sécurité
- [Fix] Correctif argument id dans la page SendNews page
- [Mod] La boite de navigation a maintenant sa propre page dans l'administration
- [Mod] RSS page structure
- [Mod] Mise à jour du plan du site
- [Mod] Modifications mineures

Site officiel français: www.memht-france.com

Proposé par Cyril Levert

Décembre 2007 – tigrou/pwet.fr: Benchmark between eZ Publish 4 and eZ Publish 3.10 with or without a PHP opcode cache

After 2 alphas and one beta release, eZ Publish 4 rc1 has been released last week . I'm trying to upgrade but I'm facing an encoding problem . In the meantime, I made a benchmark between eZ Publish 4rc1 with PHP 5.2.5 and eZ Publish 3.10.0 with PHP 4.4.7 on a Debian Etch system using the Dotdeb packages . I also tested the performances of APC , eAccelerator and XCache opcode cache modules in those configurations.

Protocol

I'm using the recommended configuration for Virtual Host setup of eZ Publish . I wrote this shell script to test performances of eZ Publish.

#! /bin/sh
 
REQUESTS=100
CONCURRENCY=2
TESTS=5
PAUSE_TESTS=90
URL='http://dev.pwet.fr/blog'
DATA_LOG_DIR=~/tests/results_php4_blog/
CONF_DIR=~/tests/conf
PAUSE_CONF=180
 
PHP_CONFD=/etc/php4/apache/conf.d/
 
[ ! -d $DATA_LOG_DIR ] && mkdir -p $DATA_LOG_DIR
 
for ini in $CONF_DIR/* ; do
    INI_BASE=`basename $ini`
    echo $INI_BASE
    DATA_LOG="$DATA_LOG_DIR/$INI_BASE.dat"
    [ -f $DATA_LOG ]  && rm -f $DATA_LOG
    touch $DATA_LOG
    # active extension
    ln -s $ini $PHP_CONFD/$INI_BASE
    /etc/init.d/apache restart > /dev/null  2>&1 
    sleep 2
 
    # initialize cache
    wget $URL -O /dev/null > /dev/null 2>&1
    sleep 2
 
    # tests
    for i in `seq 1 $TESTS` ; do
        echo "  Test $i"
        ab -c $CONCURRENCY -n $REQUESTS $URL | grep 'Requests per' | tr -s ' ' | cut -d ' ' -f 4 >> $DATA_LOG
        sleep $PAUSE_TESTS
    done
    sleep $PAUSE_CONF
 
    rm -f $PHP_CONFD/$INI_BASE
    /etc/init.d/apache restart
done

I've run this shell script with a PHP4 setup (eZ Publish 3.10) and then with a PHP5 setup (eZ Publish 4.0rc1) sharing the same database. The script uses 4 configurations of PHP (no opcode cache, apc, eaccelerator, xcache), for each it makes 5 series of 100 requests with a concurrency of 2 with ab (Apache Benchmark) and it logs the mean number of requests per second. There are pauses between tests. I've run those tests on two pages of this site on a dedicated test server, the first one is the /blog page with view cache et cache-block enabled and the second one is /man/linux but with no view cache and no cache-block at all in order to see how eZ Publish 4 and 3.10 performs on retrieving its cache or on building a page from scratch. The first one makes 6 SQL queries and uses 2 cache-block and its view cache. The second one, without content related caches, makes about 100 SQL queries an displays about 10 XML blocks and 3 dynamic lists.

Result with a cached page

Without an opcode cache on cached page, eZ Publish 4 is about 10% quicker than eZ Publish 3.10 but with an opcode cache system, the difference is about 50% ! It's interesting to note that with PHP4, eAccelerator seems to be the faster yet , about 10% more than APC or XCache but with PHP5 there's almost no difference (more or less 2%).

Result with a page without content related cache

In this test, without an opcode cache, eZ Publish 4 is 85% faster than eZ Publish 3.10. And with an opcode, eZ Publish 4 using PHP 5.2.5 is about 150% faster than eZ Publish 3.10 !

Conclusion

No doubt, eZ Publish 4 is really faster than eZ Publish 3.10 and even more with an opcode cache.

I think I'm going to test eZ Publish 4 and 3.10 with apache 1.3 and apache 2.2 and perhaps with different configuration of MySQL 5.0, stay tuned :)

Décembre 2007 – PHP Québec: 1/15 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mardi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratiques sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: DOJO et COMET

DOJO est une boîte à outil (un peu comme plusieurs librairies Javascript) facilitant le développement d'applications Web 2.0 (Ajax et compagnie). Son penchant interface (UI) du nom de DIJIT améliore le rendu graphique des applications développées grâce à des éléments pratiques (toolbars, fenêtres déplaçables, listes accordéons). Nous verrons brièvement comment intégrer Dojo et Dijit à vos applications.

La branche expérimentale de Dojo, nommée DojoX comporte plusieurs éléments encore en "élaboration" par l'équipe de développeurs. Un de ces composants est une classe d'utilisation de méthodes de communications COMET (le successeur à Ajax); il permet une communication en temps presque réel entre le navigateur et le serveur sous forme de queue de messages (Message Queuing). Ce composant a beaucoup de potentiel, nous ferons une démonstration de son fonctionnement.

Par dessus tout, cette boîte outil est distribuée sous license BSD; vous pouvez l'intégrer sans tracas dans vos projets. Si vous êtes intéressés à en connaître d'avantage sur Dojo, Dijit et Comet(d) ou à partager de votre expérience venez nous rejoindre au prochain laboratoire PHP de PHP Québec.

Animateurs: Michel Belleau, Sylvain Lévesque

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 15 Janvier 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – PHP Québec: 2/20 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mercredi ou jeudi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratique sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: JSR-283 pour PHP (TYPO3 V5)

La norme JSR-283 est l'évolution de la norme JSR-170 qui viennent toutes les deux du monde JAVA. Ces normes permettent de mettre en place un espace de contenu (repository) pour remplacer une base de données et donc de ce fait de stocker des données. Mais actuellement aucun projet en PHP n'utilise cette norme, sauf peut être le projet "Jackrabbit" de la fondation Apache basé sur la première version (JSR-170). Du coté de JAVA et de l'opensource, nous pouvons citer Alfresco, qui a réalisé une très bonne intégratin de la norme JSR-283. C'est alors que les développeurs de prochaine version majeure de TYPO3 (version 5) se sont intéressé à ce procédé pour remplacer l'utilisation d'une base de donnée et d'en tirer les avantages. Actuellement en développement
cette intégration pourrait avoir lieu dans le framework du nom de FLOW3, développé spécialement pour cette nouvelle version de TYPO3. Nous essayerons d'en savoir plus sur cette norme et son avantage par rapport à une base de données traditionnelle.

Animateurs: Yannick Pavard

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 20 Février 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – PHP Québec: 3/26 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mercredi et jeudi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratiques sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: à déterminer

Animateurs: à déterminer

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 26 Mars 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – PHP Québec: 4/23 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mercredi et jeudi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratiques sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: à déterminer

Animateurs: à déterminer

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 23 Avril 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – PHP Québec: 5/28 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mercredi et jeudi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratiques sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: à déterminer

Animateurs: à déterminer

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 28 Mai 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – PHP Québec: 6/18 19:00 Laboratoire PHP

L'équipe de PHP Quebec de Québec vous invite aux laboratoires PHP qui ont lieu tous les troisièmes mercredi et jeudi du mois dans les locaux d'Omnitronik Solutions.

Les laboratoires sont des espaces collaboratifs où la discution et la pratiques sont à l'honneur. Au départ, un participant, déterminé à l'avance, lance la discution en nous présentant ce qu'il connait du sujet du mois ou en nous démontrant ses expérimentations. Nul besoin d'être un expert en la matière puisque tous les participants sont encouragés à renchérir les propos, à montrer leurs propres exemples pratiques et même à poursuivre sur des sujets autres ou plus avancés. Les laboratoires mettent donc l'accent sur la mise en commun des connaissances et des expériences au bénéfice de tous un chacun.

SUJET: à déterminer

Animateurs: à déterminer

Confirmez votre présence:
info@phpquebec.org

Proposez un sujet pour un prochain laboratoire ?
info@phpquebec.org


Date : 18 Juin 2008
Heure : 19h00
Lieu : Omnitronik Solutions, Québec
Adresse: 871, Grande-Allée Ouest Suite RC-50 (entrée indépendante à l'arrière de l'édifice)
Carte : http://tinyurl.com/27hc7m (près des résidences Mérici)
Ville : Québec

N.B. Le stationnement est gratuit dans la zone visiteur (premier stationnement à droite), des jetons vous serons distribués lors du laboratoire.

Décembre 2007 – Rom's blog: PHP 6.0-dev et MySQL 5.1.22rc pour WampServer

Je viens de publier deux nouveaux addons permettant de tester PHP 6.0-dev et MySQL 5.1.22rc sur WampServer. J’en ai profité pour créer une rubrique dédiée aux dev, beta et rc sur le site de WampServer histoire de ne pas les mélanger avec les versions stables de A M P.

Vous pourrez le trouver sur cette page :

http://www.wampserver.com/addons_dev.php

Bons tests ;-)

Décembre 2007 – Sorcellerie Web: Détecter les préférences du navigateur

Il bien plus agréable pour l'internaute de disposer directement du contenu qui le concerne (langue, navigateur, OS...) plutot que de devoir fouiller le site web pour l'obtenir. Cela améliore son expérience de navigation, et donc l'attrait pour votre site.

Beaucoup d'entre nous se sont habitués à chercher, en arrivant sur un site, s'il n'en existait pas une version dans sa propre langue. On cherche alors où sont les petits drapeaux, les micro-liens avec code de langue sur deux caractères, etc. Et beaucoup d'utilisateurs ne les trouvent pas, et quittent le site immédiatement, faute de pratiquer la langue affichée. Pourtant, quand le contenu d'un site est traduit, le plus gros du travail est fait; pourquoi ne pas l'afficher directement dans la langue spécifiée par l'internaute pour son navigateur ?

bookmarklets_delicious_oper.pngCeci est également valable pour d'autres préférences. La page de téléchargement de Firefox par exemple est non seulement traduite dans la langue de l'internaute, mais la version proposée au téléchargement est celle correspondant à son système d'exploitation. Tout aussi efficace, la page de bookmarklets pour Del.icio.us est automatiquement adaptée au navigateur en cours. Ceci est possible grâce aux données de préférences et d'environnement utilisateur transmises par le navigateur au serveur web via les en-têtes HTTP.

Outre les préférences de langue, et les particularités eventuelles de l'environnement système d'exploitation/navigateur, il peut être souhaitable de détecter le support de javascript, surtout pour les sites utilisant ajax pour certaines de leurs fonctionnalités. Tout comme le support de flash. La liste est longue, car les possibilités d'HTTP sont encore largement sous-utilisées.

Bien evidemment, il faut garder à l'esprit que ces données ne sont pas fiables, et ne doivent être utilisées que pour définir la version du contenu par défaut, et toujours permettre à l'utilisateur de modifier ces réglages si possible via des liens et des contrôles manuels.

Pour ce qui est de PHP, vous pouvez utiliser un de mes bouts de script ( getting browser language settings with php), ou la classe phpsniff qui semble bien plus complete (pas encore utilisée, je viens de tomber dessus).

Décembre 2007 – tigrou/pwet.fr: eZ Publish 4

eZ Publish 4 est enfin sorti , j'en ai déjà beaucoup parlé lors de la sortie d'eZ Publish 4 Alpha1 , après le eZ Publish Developper Day à Paris et encore hier avec mon benchmark entre eZ Publish 3.10 et eZ Publish 4 avec différentes configurations de PHP. Maintenant il n'y a plus qu'à l'utiliser. Mais surprise intéressante, l'extension eZ Flow annoncée et présentée lors du developper day est intégrée à cette version. J'ai regardé avec attention la vidéo de présentation qui reprend grosso modo la démonstration du 31 octobre; c'est assez impressionnant d'intégration et de facilité d'utilisation reste à voir si ce sera facilement utilisable/intégrable avec ses propres design et templates...

Enfin avis personnel, la version à vraiment attendre est la prochaine stable prévue en début d'année qui marquera l'intégration réelle et profonde des eZ Components ce qui promet des changements beaucoup plus importants et probablement des améliorations dans bien des secteurs (performances, flexibilité, ...).

Décembre 2007 – Rom's blog: mysqlnd, un driver MySQL optimisé pour PHP

Pour se connecter à une base de données MySQL avec PHP, il existe trois solutions (ou connecteurs) : mysql, mysqli et PDO.
Ces connecteurs ont tous leurs spécificités et sont apparus au fur et à mesure des évolutions de PHP.
Point commun entre ces trois connecteurs, ils se basent tous sur la bibliothèque libmysql qui fut initialement développée pour les langages C et C++.

Une des grandes nouveautés de PHP 5.3 est l’apparition de la bibliothèque mysqlnd, bibliothèque développée par MySQL spécifiquement pour PHP. Wouhou, ils s’intéressent enfin à PHP, il était temps!

Alors, tout d’abord, il est important de ne pas confondre : mysqlnd n’est pas un nouveau connecteur! Il s’agit d’une bibliothèque utilisée par les connecteurs. Au niveau de l’utilisation il n’y aura donc pas particulièrement de changement, vous continuerez à utiliser mysqli ou PDO au choix.

Mais alors que va apporter cette nouveauté?

Bah tout d’abord, des performances. mysqlnd a été développé spécifiquement pour fonctionner avec PHP et passe donc par le gestionnaire de mémoire du Zend engine. Cela permet d’avoir une meilleure gestion de l’allocation de la mémoire et un gain en terme de cycles CPU. A noter que la directive MEMORY_LIMIT s’appliquera donc maintenant aux connecteurs utilisant cette bibliothèque. Mais le gros point fort vient du système de gestion de la mémoire introduit par mysqlnd.
Pour schématiser, jusqu’ici, lorsqu’on faisait une requête avec MySQL, le jeu de résultat de la requête était stocké en mémoire et chaque fetch que vous faisiez allait taper dans ce jeu de résultat pour créer de nouvelles variables, celles justement renvoyées par votre fetch et utilisables dans votre script PHP (généralement, un tableau). Avec mysqlnd, les copies ne sont plus effectuées, à chaque fetch, vos variables PHP pointent directement sur les adresses mémoire de votre jeu de résultat MySQL à utiliser ce qui évite les doublons et permet donc de grosses économies de mémoire.

ensuite, mysqlnd introduit de nouvelles fonctionnalités. J’ai dit nouvelles? Pardon, le mot n’est peut être pas juste. En effet, dans les “nouvelles” fonctionnalités, il y a tout d’abord les connexions persistantes.
Elles avaient été abandonnées avec le connecteur mysqli pour des problèmes de performances et de stabilité (voir ce post très intéressant : http://www.mysqlperformanceblog.com/2006/11/12/are-php-persistent-connections-evil/).
Apparemment, ces problèmes ont été résolus avec mysqlnd puisque cette fonctionnalité réapparaît. Reste à voir si cela a un véritable intérêt.
Autre nouveauté, des fonctions de statistiques vont être disponibles, statistiques qui vous permettront d’optimiser vos scripts. Ces fonctions ont déjà été intégrées dans mysqli dans la PHP 5.3 : mysqli_get_client_stats(), mysqli_get_connection_stats() ou encore mysqli_get_cache_stat().

Enfin d’autres fonctionnalités sont également introduites comme un système de cache de requête côté client (par client, comprenez PHP, en opposition à MySQL) ou encore l’utilisation de l’API de gestion de flux de PHP (streams).

concernant la licence, mysqlnd est publié sous licence PHP ce qui permet de réintroduire le support natif de MySQL dans PHP 5.3.

Pour le moment, mysqlnd a été intégré aux extensions mysql et mysqli et est en train d’être intégré à PDO.

Enfin voilà, que des bonnes nouvelles pour les habitués du trio AMP!

Décembre 2007 – sahid.funraill.org: Récuperer ses contacts MSN, Gmail, Yahoo avec PHP

Classe PHP pour vos contacts MSN, Gmail Yahoo… – get contacts msn, gmail, yahoo…

Pour les besoins d’un projet au boulot, j’ai du faire quelques recherches afin de trouver comment récupérer les contacts des boites msn, yahoo, gmail, et autres… le problème est que sur le net on trouve de nombreux Web service proposant ces fonctionnalités mais tres peu de librairies libres …

Apres de multiples recherches je suis tombé sur plusieurs classes intéressantes, et j’ai donc pensé les rassembler pour en faire un petit paquetage simple d’emploi.

Présentation de la classe Contacts

En utilisant le pattern decorator et une petite factory je suis arrivé � faire en sorte de simplifier un maximum son utilisation

class Contacts
{
  public static $arr_type = array ('Gmail', 'MSN', 'Yahoo', 'Lycos', 'AOL');

  public static function factory ($user, $pass, $type)
  {
    if (in_array ($type, self::$arr_type))
      {
        $class = "{$type}Decorator";
        return new $class ($user, $pass);
      }
    else throw new Exception ('Invalide type, utilisez : '.implode (", ", self::$arr_type));
  }
}

Etat du paquetage Contacts (MAJ : 07/09/08)

   Gmail Le probleme libg110 est corrigé
   Yahoo! Teste réussi avec @yahoo.fr
   AOL Teste réussi avec @aol.com
   Lycos Teste réussi avec @lycos.com
   MSN Teste réussi avec @hotmail.fr @hotmail.com

NOTE : Gmail, AOL, Yahoo, et Lycos, n’ont pas besoin du suffixe @host.com

Un petit exemple

Décembre 2007 – PHPortail: Sécurité : Suhosin 0.9.21 (04/12/07)

Une nouvelle version de l'extension Suhosin vient de sortir. Elle vient encore renforcer la sécurité de vos applications PHP en y ajoutant un certain nombre de protections supplémentaire pour vos...

Décembre 2007 – PHPortail: Comparatif des performances des ORM PHP (04/12/07)

Vous avez surement entendu parler des ORM (Object Relational Mapper)? Mais qu'est-ce que c'est? Simplement un outil permettant de manipuler les tables d'une base de données en utilisant des objets. ...

Décembre 2007 – PHPortail: Tests pas mutation (04/12/07)

Vous connaissez les tests de mutations? Ce sont des tests unitaires qui complètent la couverture de code. Pour ce faire, il faut appliquez vos tests unitaires et si,tout fonctionne, effectuez une...

Décembre 2007 – PHPortail: Sécurité : Je suis vulnérable... (04/12/07)

Une expérience vécue pas Olivier Veujoz : « Soumis à un audit de sécurité récemment, l'application que je conçois avec soin était vulnérable à une attaque de type Cross Site Scripting,...

Décembre 2007 – PHP Index: Séminaire web sur la haute disponibilité DRBD pour MySQL

Le Mercredi 12 Décembre 2007 aura lieu un séminaire web sur le sujet "Introduction aux architectures de haute disponibilité DRBD pour MySQL".
Ce séminaire sera tenu par Serge Frezefond, Ingénieur avant-vente chez MySQL France à 10h00 pour une durée de 45 minutes suivi de questions-réponses, tout cela via votre navigateur.

Qu'est-ce que DRBD ?
C'est un "bloc device" qui exploite les capacités de réplication synchrone de façon transparente pour l’application, la base de données ou le système de fichiers. Utilisé parallèlement au package open-source Linux Heartbeat, il permet aux architectes de solutions de concevoir une base de données MySQL capable d'exploiter les fonctions de basculement (failover) automatique des ressources après une panne, sous une configuration « hot standby » garantissant la sécurité totale des transactions.

Ce séminaire vous permettra de comprendre comment mettre en place une solution de haute disponibilité en utilisant MySQL et DRBD et ainsi :
- Assurer la haute disponibilité de vos données et la resynchronisation en cas de panne
- Gérer le basculement de l'application et de la base de données
- Réduire vos coûts

Pour vous inscrire, c'est par
Afin de participer à cette présentation Web vous nécessiterez l'utilisation d'un des navigateurs suivants : voir la liste

Proposé par Clément Péronneaud

Décembre 2007 – Kamelot Blog: Bloc commentaire désactivable

Si au lieu d'écrire vos blocs commentaires comme ceci

[php]
<?php 
/*
    echo 'toto';
*/
?>
Vous faites
[php]
<?php 
/*
    echo 'toto';
//*/
?>

Il suffit d'ajouter un / devant l'ouverture du bloc pour le réactiver

[php]
<?php
//*
echo 'toto';
//*/
?>

Pour le réactiver 2 solutions :
  1. ° retirer le / ajouté
  2. ° ou ajouter un * derrière le / ajouté
[php]
<?php
/*/*
echo 'toto';
//*/
?>

L'avantage de cette 2eme solution c'est de "reconnaitre facilement" un bloc commentaire switchable

En effet, vous prendrez vite le réflexe en voyant un /*/* que c'est un bloc switchable, alors que face à un /* vous devez aller vérifier la fermeture du bloc

Décembre 2007 – PHPortail: Symfony 1.0.9 (05/12/07)

Une nouvelle version de symfony vient de sortir. Cette nouvelle version corrige une vingtaine de bogues.

Le passage à Symfony 1.0.9 est recommandé si vous comptez utiliser PHP 5.2.5, en raison...

Décembre 2007 – PHPortail: Zend Framework 1.0.3 (05/12/07)

Nous nouvelle version du cadre d'application de Zend, vient de voir le jour.

Près de 80 bogues ont été corrigés. De plus, il y de nouvelles fonctions comme :

* Amélioration de...

Décembre 2007 – PHPortail: Sécurité : REMOTE_ADDR n'est pas une valeur sûre (05/12/07)

Faut-il encore le répéter, les données fournies dans $_SERVER ne sont pas sécuritaires. Beaucoup de personnes pensent que $_SERVER['REMOTE_ADDR'] est une des plus sûres. Malheureusement, ce...

Décembre 2007 – Prendre un Café: Yet Another En Vrac

Tiens, ça faisait longtemps...

Décembre 2007 – PHP Index: Installer PHP et Wordpress sur IIS 7

La prochaine mouture de Windows Server, prévue pour février 2008, comprendra IIS 7. Cette nouvelle version de IIS est censée améliorer les performances avec PHP, notamment grâce à la refonte du module FastCGI.

Une vidéo au format Silverlight, nous détaille l'installation de PHP sur cette nouvelle plateforme ainsi que la configuration de Wordpress. Une bonne initiation pour ceux qui veulent franchir le cap dès 2008.

Décembre 2007 – PHP Index: FLEX ET PHP DANS LE NUMERO COURANT DE PHP SOLUTIONS

En plus dans le numéro:

- Google Web Toolkit: AJAX
- Votre PAYPAL sécurisé
- Choisir sa librairie ORM
- Attaques par injection SQL

et aussi

Sur le CD: versions complètes de PHP Rite (d'une valeur de 20$) et ProstoServer (d'une valeur de 150$) avec un nouveu e-book "Plongez au coeur de Python" www.phpsolmag.org/fr

Bonne Lecture!

Proposé par Lukasz Trzak

Décembre 2007 – Sorcellerie Web: Fichiers de configuration

configuration-48x48Lorsqu'on développe une application ou un composant de manière à pouvoir le réutiliser, il est nécessaire de pouvoir définir une configuration d'environnement de manière séparée du code. Cela peut être fait par inclusion d'un fichier se contentant de déclarer un suite de variables ou de constantes dans le language de l'application (c'est le cas des fichiers urls.py et settings.py de Django). Mais il est généralement préférable d'utiliser un format qui puisse être lu et modifié par un non-programmeur.

Le format INI

A la fois très simple et très largement utilisé, le format INI permet de définir des paires clefs/valeur, éventuellement organisées par sections. Il est suffisamment intuitif pour être modifié par quelqu'un qui n'en connait pas la syntaxe.

C'est le format de configuration de PHP, et une fonction native permet de lire un tel fichier et de récupérer directement les données stockées dans un tableau associatif, à deux dimensions en activant le support des sections.

Python dispose du module ConfigParser, qui supporte une syntaxe un peu plus évoluée.

Le format XML

Le patriarche des formats de structuration et d'échange de données. Plus qu'un format de fichier, XML est une grammaire dont dérivent des zillions de syntaxes, qu'elles soient standardisées ou propriétaires. Très largement utilisé pour la configuration d'application, ce n'est pourtant pas forcément des plus simples à éditer. De plus, il est généralement assez lourd à manipuler en programmation, ce qui n'est pas terrible en termes de performance. Surtout dans le cadre d'une application web, si celle-ci doit lire le fichier à chaque requete...

Le format YAML

Si vous avez besoin de données de configuration plus élaborées, notamment s'il vous faut plus de deux niveaux de données ou des textes sur plusieurs lignes, il y a le format YAML. Celui-ci se veut une alternative à XML, qui soit à la fois plus concise (donc plus légère à stocker) et plus lisible pour un être humain. Ce qui en fait un candidat idéal pour des fichiers de configuration. Comme en Python, l'indentation y joue un rôle clef.

Contrairement à INI, il n'est pas supporté nativement par PHP, mais la librairie Spyc permet de convertir ces fichiers en tableaux de données et inversement.

Python dispose de la librairie PyYaml.

Décembre 2007 – Noplay: PEAR et les proxy

On me demande souvent comment configurer les proxy pour PEAR.

Cela se fait très simplement avec la commande pear config-set

pear config-set http_proxy "http://LOGIN:MOTDEPASSE@SERVEUR:PORT"

Décembre 2007 – PHPortail: YUI 2.4.0 (10/12/07)

Yahoo! vient de sortir la nouvelle mouture de sa librairie "Yahoo! User Interface".



Quelques ajouts sont :
* Sélecteurs
* Tableaux graphiques
* profileur
* "GET" pour les scripts et...

Décembre 2007 – PHPortail: MySQL 5.0.51 (10/12/07)

MySQL 5.0.51, la dernière version du système de base de données Open Source, a été publiée. C'est une version d'entretien, qui apporte les améliorations et corrections depuis la dernière...

Décembre 2007 – PHPortail: Un chat en Ajax (10/12/07)

« Apprenez à construire un système de discussion pour votre application Web, à l'aide de Asynchronous Javascript et XML (Ajax), et PHP. Vos clients pourront discuter avec vous et entre eux à...

Décembre 2007 – PHPortail: Introduction aux architectures de haute disponibilité DRBD pour MySQL (10/12/07)

Assurer la disponibilité des systèmes et l’accès aux données est plus crucial que jamais pour les entreprises, quelle que soit leur taille. Pour de nombreuses entreprises modernes, l’activité...

Décembre 2007 – PHPortail: eZ Publish 4.0.0 et eZ Flow 1.0 (10/12/07)

Nous avons le plaisir d'annoncer la première version stable d’eZ Publish 4.0.0 et eZ Flow 1.0. Ces versions ajoutent d'importantes évolutions à eZ Publish et au bénéfice de tout l'écosystème...

Décembre 2007 – z-f.fr: Zend_Layout is merged ^^

Forum: Brèves
Auteur: Julien
Écrit le: Tue, 11 Dec 2007 16:14:59 +0100
Dernier message: Fri, 01 Feb 2008 16:22:06 +0100

Décembre 2007 – PHP Québec: 1/5 9:30 codeFest PHPQuebec 2.0

L'équipe de PHP Québec est fière de vous inviter à une autre édition du CodeFest PHP Québec qui aura lieu le 5 et 6 Janvier 2008 à La Bande Passante.

Suite au succès important du CodeFest 2007, où plus de 10 développeurs ont implémenté le support OpenID dans des outils tel que TikiWiki CMS/Groupware, Crash at mine, WifiDog, Xoops, phpBB et Habari, l'équipe de PHP Québec est fière de commanditer le CodeFest 2.0 !

Le CodeFest PHP Québec se déroule dans une ambiance conviviale qui favorise les échanges d'expertise entre passionnés des technologies telles que PHP, Python, Ruby, ASP, JAVA ...

L'objectif commun sera d'implémenter ou d'améliorer le support des microformats dans divers outils de gestion de contenu (WordPress, Dupal, TikiWiki, etc). Afin d'accélérer le développement et la compréhension des microformats, Robin Millette fera un survol de cette technologie et élaborera sur les meilleures approches à emprunter.

De plus, des développeurs de TikiWiki et MediaWiki uniront leur efforts afin de construire un convertisseur de syntaxe Wiki. Aussi, Alain Désilets introduira le projet 'Wiki-Translation.com', et Marc Laporte poursuivra avec un workshop 'Comment créer un template HTML/CSS pour TikiWiki CMS/Groupware'.

L'événement est gratuit pour les participants.

Déjà, plus de 15 personnes ont confirmés leur présence sur:
Upcoming : http://upcoming.yahoo.com/event/383478/
Facebook : http://www.facebook.com/event.php?eid=8175150933

Tous les détails sur le wiki: http://wiki.facil.qc.ca/CodeFest2008

Avis aux entreprises désirant contribuer au succès du CodeFest et au développement des logiciels libres au Québéc, les organisateurs du CodeFest sont à la recherche de commanditaires supplémentaires. Ceci est une bonne occasion pour faire connaître votre entreprise, votre offre de services, vos offres d'emplois à la communauté. Pour plus de détails, veuillez contact Yann Larrivee (ylarrivee@phpquebec.com) ou Marc Laporte (marc@marclaporte.com).

Lieu:
La Bande Passante
Adresse : 8655 St-Denis, Montréal
Metro : Crémazie
Date : 5 & 6 Janvier (samedi et dimanche)
Heure : 9:30 à 20:00


Évènements à venir:

- 10 Janvier 2008: Retour sur le CodeFest 2.0 Introduction sur les MicroFormat par Robin Millette

- 12 Janvier 2008: Fin des tarifs de pré-vente pour la Conférence PHP Québec 2008

- 7 Février 2008: Déboguer une application web avec FirePHP par Jean-Marc Fontaine

- 14, 15,16 Mars 2008: Conférence PHP Québec

- Mai 2008 CodeFest PHP Québec 2.1

Décembre 2007 – PHP Index: Typo3 : bulletin de sécurité pour l'extension indexed_search

Versions concernées : versions 3.x, 4.0 à 4.0.7 et 4.1 à 4.1.3.

Cette extension est vulnérable aux injections SQL.
Il est cependant nécessaire d'être loggué au niveau du backend pour pouvoir exploiter cette faille.

Si vous êtes sur une version 4.1.x, téléchargez la version 4.1.4
Si vous êtes sur une version 4.0.x, téléchargez la version 4.0.8

Lire l'article de PHP Index sur ces nouvelles versions
Lire l'article concernant ce bug
Télécharger ces nouvelles versions

Décembre 2007 – PHP Index: Drupal 4.7.10 et 5.5

Drupal 4.7.10 et 5.5 sont désormais disponible en téléchargement.

Ces deux versions corrigent une vulnérabilité, classifiée comme "critique", qui pourrait permettre d'effectuer des attaques de type injection SQL par le biais de la fonction taxonomy_select_nodes().

Site officiel
Télécharger Drupal 4.7.10
Télécharger Drupal 5.5

Décembre 2007 – Dur Comme Faire: Planète PHP Fr en ligne

L'AFUP vient de mettre en ligne le site Planète PHP Fr qui regroupe les billets des blogs et des sites francophones traitant de PHP. Si vous connaissez un site francophone intéressant et traitant de PHP qui n'est pas listé, n'hésitez pas à le signaler à l'adresse planetephpfr@afup.org....

Décembre 2007 – tigrou/pwet.fr: Comment configurer un site eZ Publish

Il y a quelques temps je parlais des ressources francophones autour d'eZ Publish . Aujourd'hui j'ai découvert sur Developpez.com la traduction en français de l'article How to Configure an eZ Publish Site de Peter Keung publié sur eZ.no. La traduction a été faite par Alain Sahli qui tient aussi un blog où il parle d'eZ Publish et d'autres choses.

Je vois de plus en plus de mentions d'eZ Publish par ci par là, avec la version 4 d'eZ Publish supportant PHP5 , ce CMS se popularise et c'est plutôt une bonne nouvelle et pour l'occasion même ezpublish-france.fr est sortie de sa léthargie en publiant une (très) courte actualité ...

Décembre 2007 – Apprendre-PHP.com: Vérifier le format d'une clé RIB (Chaines de caractères)

Cette petite fonction vous permet de vérifier que le format d'une clé RIB d'un compte bancaire français est correct. Une clé RIB française doit avoir une valeur comprise entre 01 et 97. Pour tester le format d'une clé RIB passée en paramètre, la fonction utilise un motif d'expression régulière conçu par Yves Maistriaud (Expreg.com). Yves m'avait écrit cette regex suite à une demande que je lui avais faite sur les forums de PHPScripts-fr.net.

Décembre 2007 – Apprendre-PHP.com: L'AFUP déploie son nouveau satellite : Planete-PHP.fr

C'est aujourd'hui que Perrick Penet (membre et Président 2006 de l'AFUP) a annoncé dans une mailing-liste, l'ouverture du site Planete-PHP.fr

Décembre 2007 – PHP Index: Typo3 4.1.4 et 4.0.8 + 4.1.5

Typo3 annonce la sortie des versions 4.1.4 et 4.0.8

Attention : Typo3 sort dans la foulée une version 4.1.5 qui corrige un bug important de la version 4.1.4

Principaux changements de la versions 4.1.4 :

  • problème d'injections SQL résolu dans le module modfunc2 du moteur de recherche "indexed_search"
  • des fichiers de langues n'étaient pas toujours uploadés
  • quelques bugs au niveau d'HTMLArea résolus
  • bugs résolus dans l'IRRE

Principaux changements de la versions 4.0.8 :

  • même bug concernant le moteur de recherche de la version 4.1.4
  • bug résolu concernant la génération d'image

Lire l'article
Télécharger ces nouvelles versions

Décembre 2007 – PHP Index: Zend Framework 1.0.3

Depuis le 30 Novembre, la version 1.0.3 du Framework développé par Zend est disponible au téléchargement.

Cette version apporte 79 améliorations et fournit quelques ajouts de fonctionnalités :

  • Le composant Zend_Gdata, qui permet une intéraction avec les API Google, comprend maintenant le support de YouTube, des Albums Picasa et de la liste des Documents.
  • Amélioration du support de la localisation, de la traduction, de la date et de l'heure, de la valeur des monnaies.
  • Mise à jour de la documentation et ajout de nouvelles traductions.

L'article
Téléchargement
Liste complète des modifications

Décembre 2007 – PHP Index: Google Agenda et l'API Google

Un Article d'IBM sur l'utilisation de l'API Google pour accéder aux informations d'un agenda Google.

Parmi les nombreux services en ligne disponibles sur les portails tels que Yahoo! ou Google, cet article publié dans la zone developpeur d'IBM s'intéresse à l'utilisation de l'outil d'agenda de Google. Comme la majorité des services du portail Web, il est possible d'utiliser son agenda via des webservices, permettant ainsi d'afficher sur un site internet personnel les évènements programmés dans son agenda. L'intérêt bien sûr est d'utiliser un outil existant simple d'utilisation et de pouvoir traiter ces données tout aussi facilement grâce à une API riche permettant la récupération, la recherche, l'ajout, la modification d'évènements.
Cet article développe en particulier le traitement des informations renvoyées par les webservices, c'est-à-dire le parsing des flux que ce soit avec DOM, SAX ou SimpleXML et Xpath. Ceux qui ont déjà utilisé ce type de services en ligne savent qu'ils sont tout de même limités en nombre de requêtes quotidiennes et l'article évoque également cet aspect en abordant la problématique du cache.

Source

Décembre 2007 – PHP Index: Sugar 5.0

SugarCRM propose depuis aujourd'hui une nouvelle mouture de son système de GRC. Cette version 5.0 se veut plus puissante, plus sécurisée, elle offre de nouvelles fonctionnalités et surtout propose une nouvelle architecture « A la demande ».

En ce qui concerne les nouvelles fonctionnalités, Sugar 5.0 se dote dés à présent :

  • d'un client mail très évolué, basé sur la technologie AJAX et qui se rapproche de ce que l'on trouve sur du Outlook ou du Thunderbird (interface évoluée, interopérabilité avec les serveurs mail les plus courants,…),
  • d'une gestion des tableaux de bords plus performante (gestion et partage de graphs entres les utilisateurs) et permettant la création de graphiques complexes (entonnoirs, jauges de performance,…),
  • d'une nouvelle interface utilisateur pour la gestion des méta-données.

L'autre innovation introduite par Sugar 5.0 concerne l'architecture à la demande. Il s'agit en fait d'une architecture "multi-instance" qui permet de maximiser la sécurité, la souplesse et le contrôle. Ainsi, un client dispose désormais de sa propre instance de Sugar. Il peut à sa convenance la mettre à jour ou encore développer de nouvelles fonctionnalités sans polluer les instances des autres clients.

Enfin, pour cette nouvelle version, SugarCRM a également mis l'accent sur le développement d'extensions avec le nouveau référentiel Module Builder. Il permet aux utilisateurs de construire des modules personnalisés et de les partager sur le Sugar Forge ou de les vendre sur le Sugar Exchange.

Sugar 5.0 sur www.sugarcrm.com
Demonstration
Télécharger Sugar 5.0

Décembre 2007 – Apprendre-PHP.com: Calcul d'une clé RIB

Cette portion de code vous présente la fonction permettant de calculer la clé RIB d'un numéro de compte bancaire à partir des informations du compte : code banque, code guichet et numéro de compte composé de chiffres et / ou de lettres. Cette fonction est implémentée dans la classe RIB_FR (voir tutoriels) pour effectuer les calculs et vérification de clé RIB.

Décembre 2007 – Apprendre-PHP.com: Vérifier le format d'une clé RIB

Cette petite fonction vous permet de vérifier que le format d'une clé RIB d'un compte bancaire français est correct. Une clé RIB française doit avoir une valeur comprise entre 01 et 97. Pour tester le format d'une clé RIB passée en paramètre, la fonction utilise un motif d'expression régulière conçu par Yves Maistriaud (Expreg.com). Yves m'avait écrit cette regex suite à une demande que je lui avais faite sur les forums de PHPScripts-fr.net.

Décembre 2007 – PHP Index: Première release stable d'eZ Publish 4.0 pour PHP 5

Sortie de la première version 4.0 pour PHP 5 d'eZ Publish 4.0

eZ systems a annoncé à la fin du mois dernier la sortie de la première version 4.0 stable optimisée pour PHP 5 de son CMS eZ Publish. Avec cette version s'ajoutent le support complet des eZ Components, ainsi qu'une amélioration des performances globales et de l'interface.

Annonce
Plus d'informations
ChangeLog

Décembre 2007 – PHP Index: phpBB "Olympus" 3.0.0

La nouvelle version de phpBB est officiellement disponible. Cette nouvelle version, baptisée "Olympus" apporte de nombreuses améliorations par rapport à la version précédente, phpBB 2.

En complément, l'équipe de développement a publié un comparatif des fonctionnalités entre "Olympus" et phpBB 2.x, donnant ainsi une vue d'ensemble des améliorations apportées.

Site officiel
Télécharger phpBB 3.0.0
Comparatif phpBB 2.x - phpBB 3

Décembre 2007 – PHPortail: Google Chart API (18/12/07)

Google Chart API permet de produire des graphiques et autres camemberts. Avec un simple appel au service, on peut produire des courbes, barres, camemberts, des ensembles et même des nuages de...

Décembre 2007 – Apprendre-PHP.com: Forum PHP AFUP 2007 : Journée fonctionnelle du 21/11/2007

Cette année s'est tenu pour sa 7ème édition le forum PHP organisé par l' AFUP du 21 au 22 novembre. C'est donc dans les locaux de l'ASIEM ( Paris - 7ème ) et dans une ambiance sereine et bon enfant que l'on pouvait entrecroiser et échanger avec quelques uns des plus grands spécalistes français et internationaux.

Décembre 2007 – PHPortail: PEAR::Validate 0.8.1 publiée (18/12/07)

David Coallier nous annonce en grande pompe l'arrivé de la version 0.80 de Pear::validate.

Si vous utilisez PEAR, mais que vous ne connaissez pas ce paquet, il serait temps de bien le regarder....

Décembre 2007 – PHPortail: Statistiques PHP du mois de novembre 2007 (18/12/07)

Nexen.net nous présente encore une fois les statistiques d'utilisation de PHP.

* Vitesse d'adoption de PHP 5 élevée : ce dernier atteint 26,1 % de part de marché.

* Utilisez PHP 4.4.7 ou...

Décembre 2007 – PHPortail: L'April publie un livre blanc des modèles économiques du Logiciel Libre (18/12/07)

Paris, le 11 décembre 2007. Communiqué de presse.

L'April publie un livre blanc des modèles économiques du Logiciel Libre, réalisé par des entreprises membres de l'association....

Décembre 2007 – PHP Index: IBM : Parser des documents RDDL

Un article, paru sur le site d'IBM, explique comment parser des fichier RDDL avec PHP.

RDDL (Resource Directory Description Language) est une extension de XHTML qui permet de décrire des ressources. On peut ainsi décrire des liens vers des éléments multimedia (une video, une musique) en précisant le titre, le type de fichier etc.

Grâce à l'extension XML_RDDL, il devient facile de parser un fichier XHTML avec des ressources RDDL et fournir des informations sur les liens. L'article présente les différentes étapes pour utiliser cette extension.


Lire l'article

Décembre 2007 – PHP Index: IBM : Débuter avec les frameworks PHP, partie 3

Duane O'Brien vient de publier la 3ème partie son tutoriel de l'utilisation de 3 frameworks PHP : Zend Framework, Symfony et CakePHP.

Ce tutoriel propose de mettre en place une application de gestion d'articles avec les 3 frameworks afin de les comparer. Après avoir expliqué comment intaller les différents frameworks dans la 1ère partie et comment mettre en place la gestion des articles dans la 2ème, cette 3ème partie est consacrée à la mise en place d'un système de gestion de commentaires.


L'article

Décembre 2007 – PHP Index: Ovidentia 6.5.2

La sortie du la version 6.5.2 d'Ovidentia est enfin effective.
Ovidentia est un gestion de publication de contenu open source et une plateforme collaborative.
Ovidentia vous permet d’intégrer simplement et facilement un environnement de publication sur internet ou un portail groupware (internet, extranet, intranet) pour une entreprise, organisation, communauté…

La version 6.5.2 d'Ovidentia est maintenant disponible sur le site communautaire http://www.ovidentia.org.

Cet outil intègre dans son noyau les principale fonctions suivantes :
- Publication et gestion d’articles
- Publication et gestion de fichiers
- Gestion de FAQs
- Mise en place de forums de discussion
Gestion d’annuaires partagées
- Création et administration d’organigrammes
- Gestion d’agendas personnels partageables, agendas collectif ou agenda de ressources.
- Mise en place de « Délégations » (communautés)
- Workflows d’approbation nominatifs ou fonctionnels (s’appuyant sur un organigramme)
- Gestion des demandes de congés (avec génération des planning de congés, calcul des soldes de congés, RTT, jours fractionnés …)
- Gestionnaire de tâches et de projets.
- Moteur de recherche transversal qui peut s’appuyer sur un moteur d’indexation pour la recherche plein texte sur l’ensemble des fichiers publiés.
- Gestion des utilisateurs, groupes et droits.
- Authentification possible sur LDAP ou Active Directory
- Génération de statistiques et de tableaux de bord sur l’utilisation de l’outil.
- API de développement pour ajout fonctionnel
- Interface et navigation personnalisable (charte graphique et ergonomie)
Installation sur un système Windows ou Linux, s’appuyant sur PHP et MySQL

Proposé par Nicolas Bidault

Décembre 2007 – Arnaud Limbourg: Comment ca s'écrit noël ?

Entendu aux Galeries Lafayette à l'une des caisses, une vendeuse posait cette question à un collègue.

J'en profite pour vous souhaiter de bonnes fêtes !

Décembre 2007 – Arnaud Limbourg: Comment ca s'écrit noël ?

Entendu aux Galeries Lafayette à l'une des caisses, une vendeuse posait cette question à un collègue.

J'en profite pour vous souhaiter de bonnes fêtes !

Décembre 2007 – Apprendre-PHP.com: Réalisation d'un livre d'or avec PDO et MVC

Les livres d'or font partie des applications dynamiques les plus populaires sur Internet. Ils permettent à aux visiteurs d'un site de déposer une trace écrite de leur passage dans le but d'aider le webmaster à améliorer son site. Nous allons présenter dans ce tutoriel, une manière simple et efficace de développer un livre d'or fonctionnel et sécurisé. Bien entendu, ce dernier s'appuiera sur une base de donnée de type MySQL et son moteur de stockage MyISAM. Dans une optique de structuration de l'application, nous nous appuyerons sur le modèle MVC.

Décembre 2007 – PHP Index: Mantis 1.1.0

Une nouvelle version, estampillée 1.1.0, du logiciel de suivi de bugs Mantis, est sortie jeudi 20 décembre.

En développement depuis Janvier 2006, cette nouvelle version apporte de nombreux changements. Voici une liste non exhaustive des nouveautés :

  • Inclusion de MantisConnect (une API SOAP)
  • Intégration Wiki (dokuwiki, mediawiki, xwiki)
  • Email queuing
  • Intégration des Gravatars
  • Prise en charge de DB2
  • Tagging
  • Filtrage des permaliens
  • Suivi temporel
  • Intégration Twitter
  • Prise en charge du codage de caractères UTF8
  • Page de configuration générique
  • Visualisation des derniers bugs visités
  • Compatibilité XHTML
  • RSS authentifié

Site Officiel
Changelog
Liste des fonctionnalités

Décembre 2007 – PHP Index: Zend: Introduction à Xdebug

Le premier article d'une série consacrée à Xdebug est disponible sur la Zend Developer Zone. Pour rappel, Xdebug est une extension PHP dont le but est de simplifier le débuggage des scripts.

Ce premier article fait office d'introduction. Il est tout d'abord expliqué comment installer et activer cette extension sur un système Unix et sur Windows. On nous présente ensuite plusieurs optimisations simples qu'il est possible d'obtenir facilement :

  • L'amélioration de la sortie de la fonction var_dump().
  • L'amélioration de l'affichage des erreurs.
  • Prévention des récursivités trop longues.

Lien vers l'article
Site officiel de Xdebug

Décembre 2007 – Hello Design: Les ElePHPants PHP decouvrent NOEL 2007

Les EléPHPants PHP viennent de découvrir Noel. Pour cette année 2007, ils ont pu découvrir les arbres de Noel, remplis de girlandes et de boules...

Ils ont eu la chance que le Père Noel a apporté quelques briques à monter et n'ont pas perdu de temps... En réalisant quelques montages... comme PHP

 

 

Pour visualiser la galerie complete... Cliquez ici

Décembre 2007 – PHP Index: Copix 3.0.2

Le framework PHP Copix est disponible dans sa version 3.0.2 en téléchargement !

Merci au Père Noël qui nous apporte ici une nouvelle version stable accompagnée d'un lot de nouveautés qui raviront la plus part des utilisateurs du produit.

La prise en charge des date / datetime et time dans les DAO pour les drivers MySql et Sqlite est aujourd'hui complètement opérationnelle, CopixSoapClient vous facilitera la vie lorsqu'il vous faudra appeler des webservices et une nouvelle série de tutoriels (news) aidera les nouveaux utilisateurs à mieux comprendre Copix autours d'un cas concret d'utilisation pas à pas.

L'équipe va maintenant se concentrer sur la finalisation de la version 3.1 qui sera disponible dans à peine un peu plus d'un mois, avec comme évolution majeure le système de formulaire complètement finalisé.

Un grand merci à tous les contributeurs, utilisateurs, traducteurs et rédacteurs qui font de Copix un projet encore plus complet et motivant !

http://www.copix.org (site officiel)
http://www.copix.org/index.php/wiki/Telechargements (téléchargements)

Proposé par Gérald Croës

Décembre 2007 – PHP Index: IBM: Eliminez les bugs de vos applications PHP avec Zend Debugger

IBM propose une utilisation du Zend Debugger dans ce tutorial.

Disponible depuis mi-novembre sur le site d'IBM, ce tutorial a pour but de présenter à travers un exemple bien détaillé l'utilisation du Debugger de Zend. Outil bien connu et indispensable sous bon nombre de langages de programmation, il est toutefois bien moins populaire pour PHP où les développeurs se satisfont bien souvent d'un debuggage "à la main". Néanmoins si cela peut vous simplifier la vie et que vous êtes intéressé par l'acquisition d'un tel outil, le tutorial vous guidera dans l'utilisation des fonctions de bases du debugger de Zend.
Vous aurez également droit en prime à un petit cours d'histoire en guise d'introduction sur l'origine du mot "bug".

Lire cet article

Sur le même sujet voir cet autre article de DevZone introduisant Xdebug.

Décembre 2007 – PHP Index: FastCGI, IIS et PHP

Cela fait maintenant un mois que l'extension FastCGI est officiellement disponible pour IIS 6.0. Il est temps de faire un point sur cette nouvelle fonctionnalité du serveur web de Microsoft et de l'intérêt pour la communauté PHP.

Qu'est ce que FastCGI ?

FastCGI est une interface créée au milieu des années 90 permettant la communication entre un serveur web et des logiciels indépendants. Son intérêt est qu'elle n'utilise qu'un seul processus pour exécuter plusieurs requêtes contrairement à l'interface CGI qui crée un processus pour chaque requête à effectuer. Très peu utilisée pendant longtemps, cette extension voit sa popularité augmentée depuis quelques années seulement.

L'intérêt pour PHP

Jusqu'au support de FastCGI, il n'y avait que très peu de moyens d'utiliser PHP sur un serveur IIS. Les méthodes les plus populaires sont l'utilisation des filtres ISAPI ou de PHP en CGI mais les performances sont mauvaises ou la stabilité du serveur est médiocre.

L'utilisation du module FastCGI, validée par Zend et testée depuis un an par plusieurs partenaires de Microsoft, est plus performante que ces deux solutions et semble être tout à fait stable. D'après Andi Gutmans, CTO de Zend, les performances seraient d'ailleurs comparables à celles que l'on obtient sur un serveur Unix.

Au-delà de l'aspect technique, l'arrivée du module FastCGI fait de PHP une alternative performante dans le choix d'un langage dynamique pour un serveur IIS.

Installer FastCGI et PHP sur un serveur IIS

Le principe d'installation est assez simple. FastCGI est disponible sur la forme d'un programme d'installation automatique comme on en trouve souvent pour Windows. Il suffit ensuite de télécharger et de dézipper une des versions de PHP précompilées disponibles sur le site officiel et d'indiquer à IIS qu'il doit utiliser PHP avec FastCGI.

Officiellement l'extension FastCGI est disponible pour IIS 6.0 mais il est également posssible de l'utiliser sur Windows Server 2008 avec IIS 7.0 où elle sera directement intégrée.
Une vidéo sur le site TechNet de Microsoft montre comment configurer PHP sur un serveur IIS 7 en utilisant FastCGI : Installing PHP Applications on IIS7

Pour en savoir plus :

Décembre 2007 – PHP Index: Mambo 4.6.3

La version 4.6.3 du CMS Mambo est sortie hier. Cette nouvelle version n'apporte pas de grande nouveauté, mais quelques bugs ont été corrigés ainsi que des failles de sécurité au niveau de l'envoie de mail, de l'interface de sélection de template et des failles de type XSS au niveau de l'administration.

Créé en 2001, Mambo est un système de gestion de contenu bien connu des amateurs de CMS. Grâce à cette expérience, il est réputé stable et permet de gérer facilement un petit site personnel ou un site professionnel complet et dynamique.


Changelog
Téléchargement

Décembre 2007 – Prendre un Café: Amazon SimpleDB plugin for Symfony

Hey, this is a post written in english. Handle with care ;)

I've just released an alpha version of a new plugin for the Symfony framework to use the brand new Amazon SimpleDB service : sfAmazonSimpleDBPlugin. This plugin is in an alpha state but provide a clean and Symfony-compliant API to handle and query your SimpleDB database, if you have the luck to have an account.

The purpose of SimpleDB is to provide simple and efficient data storage through a webservice. You can find billing policy on their website.

I've mainly used the PHP5 library provided by Amazon (API documentation available), but I thought some operations were a bit complicated.

For example, with the official client, to insert a row in a table you have to do something like this :

<?php
require_once ('Amazon/SimpleDB/Model/ReplaceableAttribute.php');
$domainName = 'MyStore';
$itemName = 'Item_01';
$attribute1 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute1->withName('Category')->withValue('Clothes');
$attribute2 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute2->withName('Subcategory')->withValue('Sweater');
$attribute3 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute3->withName('Name')->withValue('Cathair Sweater');
$attribute4 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute4->withName('Color')->withValue('Siamese');
$attribute5 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute5->withName('Size')->withValue('Small');
$attribute6 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute6->withName('Size')->withValue('Medium');
$attribute7 = new Amazon_SimpleDB_Model_ReplaceableAttribute();
$attribute7->withName('Size')->withValue('Large');
$attributeList = array($attribute1, $attribute2, $attribute3, $attribute4, $attribute5, $attribute6, $attribute7);
$action = new Amazon_SimpleDB_Model_PutAttributes();
$action->withDomainName($domainName)->withItemName($itemName)->setAttribute($attributeList);
invokePutAttributes($service, $action);

With the Symfony plugin, you can do the same with :

<?php
$data = array('Category'    => 'Clothes',
              'Subcategory' => 'Sweater',
              'Name'        => 'Cathair Sweater',
              'Color'       => 'Siamese',
              'Size'        => array('Small', 'Medium', 'Large'));
sfAmazonSimpleDBClient::getInstance()->selectDomain('MyStore')->putAttributes('Item_01', $data);

Personnaly I prefer the shorter syntax but it's mainly matter of taste here. In a future release, I'll try to also provide a backend module to handle the databases.

Last but not least, the plugin API is entirely unit tested. You can find the test suite here.

I hope you'll find this plugin somewhat useful for your Symfony projects :)

Edit : The author of the official Amazon PHP library sent me a mail to clarify a point : there's an alternative syntax available, array based, to put attributes:

$action = array ( "DomainName" =>  $domainName,
            "ItemName" =>    $itemName,
            "Attribute" = >  array(
                        array ("Name" => "Category", "Value" => "Clothes"),
                        array ("Name" => "Subcategory", "Value" => "Sweater"),
                        array ("Name" => "Name", "Value" => "Cathair Sweater"),
                        array ("Name" => "Color", "Value" => "Siamese"),           
                        array ("Name" => "Size", "Value" => "Small"),   
                        array ("Name" => "Size", "Value" => "Medium"),
                        array ("Name" => "Size", "Value" => "Large"))
            );
$service->putAttributes($action);

So next step for me, I'd like to ORMize all this to be able to do some pretty things like:

$product = new Product();
$product->setCategory('Clothes');
$product->setSubcategory('Sweater');
$product->setName('Cathair Sweater');
$product->setColor('Siamese');
$product->setSize(array('Small', 'Medium', 'Large'));
$product->save();

Not very hard to do but I wonder if I will be able to avoid code generation (yurk)...

Décembre 2007 – Arnaud Limbourg: Sécurité et applications "closed source"

Lu sur la page d'un framework MVC

"Closed source applications are generally more secure, by limiting access to the original source we reduce the ability to have [it] exploited."

J'ai de sérieux doutes quand au bien-fondé d'une telle remarque. La citation suivante illustre bien le contre-argument

As a cryptography and computer security expert, I have never understood the current fuss about the open source software movement. In the cryptography world, we consider open source necessary for good security; we have for decades. Public security is always more secure than proprietary security. It's true for cryptographic algorithms, security protocols, and security source code. For us, open source isn't just a business model; it's smart engineering practice.

Bruce Schneier in Crypto-Gram Newsletter, http://www.schneier.com/crypto-gram-9909.html

L'idée est que la sécurité est bien meilleure lorsque de nombreuses personnes peuvent analyser les mécanismes utilisés or, dans le cas de code propriétaire, le nombre de paires d'yeux conduisant une analyse est bien moins important. La conclusion logique est que la sécurité est moindre.

Cela n'a rien de bien nouveau en soi mais je suis surpris que l'on puisse encore lire de tels arguments.

Je me suis aperçu plus tard le site n'a pas vu de mise à jour depuis un an et demi et donne tous les signes d'une mort clinique. L'argument de la meilleure sécurité ne leur a pas réussi apparemment.

Décembre 2007 – Arnaud Limbourg: Sécurité et applications "closed source"

Lu sur la page d'un framework MVC

"Closed source applications are generally more secure, by limiting access to the original source we reduce the ability to have [it] exploited."

J'ai de sérieux doutes quand au bien-fondé d'une telle remarque. La citation suivante illustre bien le contre-argument

As a cryptography and computer security expert, I have never understood the current fuss about the open source software movement. In the cryptography world, we consider open source necessary for good security; we have for decades. Public security is always more secure than proprietary security. It's true for cryptographic algorithms, security protocols, and security source code. For us, open source isn't just a business model; it's smart engineering practice.

Bruce Schneier in Crypto-Gram Newsletter, http://www.schneier.com/crypto-gram-9909.html

L'idée est que la sécurité est bien meilleure lorsque de nombreuses personnes peuvent analyser les mécanismes utilisés or, dans le cas de code propriétaire, le nombre de paires d'yeux conduisant une analyse est bien moins important. La conclusion logique est que la sécurité est moindre.

Cela n'a rien de bien nouveau en soi mais je suis surpris que l'on puisse encore lire de tels arguments.

Je me suis aperçu plus tard le site n'a pas vu de mise à jour depuis un an et demi et donne tous les signes d'une mort clinique. L'argument de la meilleure sécurité ne leur a pas réussi apparemment.

Décembre 2007 – Apprendre-PHP.com: Créer des flux RSS facilement et rapidement

Ce tutoriel présente une manière simple, rapide et efficace de concevoir des flux RSS au moyen d'une classe PHP5. Afin de rendre ce cours moins théorique, nous partirons d'un exemple pratique et concret. Nous simulerons la génération d'un flux RSS d'un module d'actualités issues d'une base de données. Nous utiliserons une base de données MySQL mais il revient à vous de l'adapter à vos besoins si votre application repose sur un autre SGBDR.

Décembre 2007 – PHP Québec: codeFest PHP Québec 2.0

L'équipe de PHP Québec est fière de vous inviter à une autre édition du CodeFest PHP Québec qui aura lieu le 5 et 6 Janvier 2008 à La Bande Passante.

Suite au succès important du CodeFest 2007, où plus de 10 développeurs ont implémenté le support OpenID dans des outils tel que TikiWiki CMS/Groupware, Crash at mine, WifiDog, Xoops, phpBB et Habari, l'équipe de PHP Québec est fière de commanditer le CodeFest 2.0 !

Le CodeFest PHP Québec se déroule dans une ambiance conviviale qui favorise les échanges d'expertise entre passionnés des technologies telles que PHP, Python, Ruby, ASP, JAVA ...

L'objectif commun sera d'implémenter ou d'améliorer le support des microformats dans divers outils de gestion de contenu (WordPress, Dupal, TikiWiki, etc). Afin d'accélérer le développement et la compréhension des microformats, Robin Millette fera un survol de cette technologie et élaborera sur les meilleures approches à emprunter.

De plus, des développeurs de TikiWiki et MediaWiki uniront leur efforts afin de construire un convertisseur de syntaxe Wiki. Aussi, Alain Désilets introduira le projet 'Wiki-Translation.com', et Marc Laporte poursuivra avec un workshop 'Comment créer un template HTML/CSS pour TikiWiki CMS/Groupware'.

L'événement est gratuit pour les participants.

Déjà, plus de 15 personnes ont confirmés leur présence sur:
Upcoming : http://upcoming.yahoo.com/event/383478/
Facebook : http://www.facebook.com/event.php?eid=8175150933

Tous les détails sur le wiki: http://wiki.facil.qc.ca/CodeFest2008

Avis aux entreprises désirant contribuer au succès du CodeFest et au développement des logiciels libres au Québéc, les organisateurs du CodeFest sont à la recherche de commanditaires supplémentaires. Ceci est une bonne occasion pour faire connaître votre entreprise, votre offre de services, vos offres d'emplois à la communauté. Pour plus de détails, veuillez contact Yann Larrivee (ylarrivee@phpquebec.com) ou Marc Laporte (marc@marclaporte.com).

Lieu:
La Bande Passante
Adresse : 8655 St-Denis, Montréal
Metro : Crémazie
Date : 5 & 6 Janvier (samedi et dimanche)
Heure : 8:00 à 20:00


Évènements à venir:

10 Janvier 2008:
- Retour sur le CodeFest 2.0
- Introduction sur les MicroFormat par Robin Millette

12 Janvier 2008:
- Fin des tarifs de pré-vente pour la Conférence PHP Québec 2008

7 Février 2008:
- Déboguer une application web avec FirePHP par Jean-Marc Fontaine

14, 15,16 Mars 2008:
- Conférence PHP Québec

- Mai 2008
CodeFest PHP Québec 2.1

Décembre 2007 – Apprendre-PHP.com: Les classes et objets

La programmation par objet ( POO ) a été intégrée au langage PHP dans sa version 4. Mais à cette époque, le modèle objet de PHP était beaucoup trop sommaire. Nous ne pouvions réellement parler de programmation orientée objet. Les développeurs de PHP se sont alors penchés sur la question et ont amélioré ce modèle objet qui, depuis la version 5, n'a plus rien à envier aux autres langages objets comme Java ou C++.