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

1er février – Nexen.net: Lutter contre le Spam sur votre site

Si votre site Web est toujours la proie des Spammers et autres pollueurs de formulaires, voici un petit tutorial pour créer votre application anti-spam, basée sur mon dernier plugin pour e107 (encore en version beta et non publique). J'évoque d'abord les solutions actuelles, peu satisfaisantes à mon goût, même si parfois très efficaces déjà, avant de vous dévoiler mon approche. Il s'agit de proposer non pas une protection unique, mais différents outils combinés pour augmenter la sécurité, tout en conservant une accessibilité satisfaisante. Rien de bien révolutionnaire à mes yeux, mais qui sait, cela peut vous servir...

1er février – Nexen.net: Alertes sécurité des applications PHP et MySQL, édition 181

Image pour le titre du contenu


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.5 et 4.4.8; MySQL 5.0.51 (communauté) , 4.1.22, ainsi que 5.1.22-beta et 6.0.3.
Les mises à jour sont recommandées vers ces versions.



6 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Joomla, PHPSavant, WordPress et ming



2 février – Nexen.net: Stubbles 0.50

Image pour le titre du contenu
Stubbles est un nouveau framework réalisé en PHP 5. il combine des fonctions préférées à partir d'autres langages de programmation et des cadres.
Stubbles installe ses propre environnement au lieu d'utiliser les paquets que vous aimez et de le combiner avec Pear, Zend Framework ou tout autre cadre basé sur PHP.
Les principales caractéristiques de Stubbles sont :
* Extended Reflection API Extension de l'API de réflexion
* Inversion of Control features Inversion of Control fonctionnalités
* MVC architecture MVC architecture
* Unified XML API Unified API XML
* JSON/AJAX support

2 février – Nexen.net: Actualité de développement PEAR, edition 181

Image pour le titre du contenu
11 paquets ont été mis à jour cette semaine :

  • en paquet PEAR (0 visite) : Système de base PEAR

  • en DB_DataObject (0 visite) : Générateur de dataobject, pour représenter une table SQL en PHP

  • en LiveUser (0 visite) : Cadre de droits et d'identifications d'utilisateurs

  • en HTML_Template_Flexy (0 visite) : Template basé sur le Tokenizer

  • en Text_Diff (0 visite) : Moteur pour effectuer et afficher des différences de texte

  • en File_Ogg (0 visite) : Access Ogg bitstreams

  • en pearweb_phars (0 visite) : Le code source poru le site gopear.com

  • en Services_Digg (0 visite) : Interface PHP pour Digg

  • en pearweb_gopear (0 visite) : Script go-pear pour pear.php.net

  • en Net_CheckIP2 (0 visite) : Paquet de validation d'une adresse IP v4

  • en Crypt_GPG (0 visite) : GNU Privacy Guard (GPG)


PEAR est la bibliothèque de composants PHP.

 



 

2 février – Nexen.net: Concours de tutoriels lancé par apprendre-php.com

Image pour le titre du contenu
J'ai le plaisir et la joie de vous présenter le tout premier concours du site Apprendre-PHP.com. Peut-être le savez-vous déjà si vous suivez le site depuis sa création mais la première bougie pointe le bout de sa flamme. C'est donc à cette occasion que j'ai décidé de mettre en place ce concours afin de fêter comme il se doit cette première bonne année, et aussi remercier toutes les personnes qui y contribuent.
En quoi consiste ce concours ?
Le principe de ce premier concours est simple. Chaque participant devra proposer et mettre un oeuvre un tutoriel autour de PHP. Le choix du sujet est laissé à l'appréciation du participant à partir du moment qu'il présente un aspect de PHP5 (POO, PDO, MySQLI, SimpleXML, WebService, Frameworks...)...

2 février – Nexen.net: Abstraction de fichiers : un avantage de PHP

Image pour le titre du contenu
Les streams sont une abstraction des fichiers : en créant un gestionnaire de fichiers, il est possible d'accéder à de nombreuses ressources exactement comme on accède à un fichier. Plus encore, les gestionnaires PHP sont choisis directement via l'URL, en choisissant le bon protocole. mail:// pop3:// monprotocole://. Manuel Lemos vous donne un exemple d'utilisation et un cas réel.

3 février – tigrou/pwet.fr: Générer des URL significatives en PHP

Il existe beaucoup de types d'URL possible pour une application web et encore plus de codes pour les générer. Une bonne URL devrait être assez courte mais significative. Par exemple le CMS eZ Publish depuis sa version 3.10 utilise un système assez complexe (en code) mais très souple permettant de produire des URLs selon le format de son choix (avec ou sans majuscule, en conservant ou non les accents, les espaces, choix du séparateur, ...) . Si, on ne trouve pas son bonheur on peut même écrire une extension pour un formatage sur mesure, voir par exemple celle de Damien Pitard sur ez.no optimisant les URLs pour l'indexation de contenu dans Google Actualités .

Quand on écrit une application simple en tout cas, moins générique qu'un CMS comme eZ Publish, on peut faire plus simple. Personnellement, j'aime les URLs de la forme "generer-des-url-en-php", c'est à dire en minuscule sans caractère spécial ni accent avec un tiret comme séparateur, c'est a priori la forme la plus simple et optimisée pour les moteurs de recherche .

Pour produire, une URL de ce type j'utilise une fonctionnalité assez peu connue de la fonction iconv() : la translittération. En gros, iconv() est capable lors de la conversion d'un jeu de caractères à un autre de trouver des équivalences si un caractère ne peut être représenté dans le jeu de caractères cible. Par exemple, si on convertit un é en ASCII, iconv() proposera un e à la place avec l'option TRANSLIT, le symbole € sera lui remplacé par "eur"... C'est d'ailleurs aussi très pratique pour traiter des chaînes de caractères issues de copier coller de traitement de texte comme Word qui insère pas mal de bizarreries.

Le code que j'utilise est le suivant :

<?php
class MonApplicationTools
{
    const LOCALE = 'fr_FR.UTF-8';
    const CHARSET = 'UTF-8';
    const SEPARATOR = '-';
 
    static function initLocale( $locale = self::LOCALE )
    {
        setlocale( LC_ALL, $locale );
    }
 
    static function URLize( $str, $fromCharset = self::CHARSET, $separator = self::SEPARATOR )
    {
        $tmp = iconv( $fromCharset, 'ASCII//TRANSLIT', trim( $str ) );
        $pattern = array( '/[^a-z0-9]/',
                            '/' . $separator . $separator . '+/',
                            '/^' . $separator . '/',
                            '/' . $separator . '$/' );
        $replacement = array( $separator, $separator, '', '' );
        return preg_replace( $pattern, $replacement, strtolower( $tmp ) );
    }
}
 
MonApplicationTools::initLocale();
$url1 = MonApplicationTools::URLize( 'Générer des URL en PHP' );
$url2 = MonApplicationTools::URLize( 'Fraude sur des milliards d\'€ à la Société Générale !!' );
echo $url1 . '<br />' . $url2;
// renvoie
// generer-des-url-en-php
// fraude-sur-des-milliards-d-eur-a-la-societe-generale
?>

Le seul inconvénient de cette méthode est qu'il faut initialiser la locale utilisée par l'application par une locale existante sur le système et reconnaissant les caractères à transformer, ce qui est rarement le cas par défaut mais peut être très utile par ailleurs si on veut par exemple utiliser des formats de dates normalisés et localisés avec strftime() . L'appel de la méthode initLocale() (qui appelle setlocale() ) réalise ce travail et aura sa place dans un fichier d'intilialisation globale (connexion à la base de données, définition du __autoload, ...) inclus dans tous les scripts. Il faut également prêter attention au fait que sous Windows, les locales ne s'écrivent pas de la même manière , évidemment, c'eut été trop simple sinon !

3 février – Nexen.net: Scanner Internet avec traceroute

Image pour le titre du contenu
Les noms de domaines ont une résonnance particulière pour nexen.net, puisque nous faisons tourner les statistiques PHP, basée sur une trentaine de millions de domaines. Le tutoriel de Jan Knechke, consacré à la géolocalisation et à l'utilisation de traceroute pour analyser l'ensemble d'internet est alors particulièrement intéressant.
Si les exemples mentionnent un paquet Perl, sachez qu'il existe bien des paquets PHP pour réaliser des traceroute :

3 février – Nexen.net: Trouver les tables MySQL les plus grosses

Image pour le titre du contenu
Peter Zaitsev publie une de ces requêtes dont il a le secret : "Trouver les tables les plus grosses sur MySQL est un jeu d'enfant en MySQL 5.0, grâce à la base Information Schema. Mais je voulais quand même publier cette dépêche pouvoir la retrouver plus tard, et en plus, elle est agréable dans sa présentation des informations."

3 février – Nexen.net: CSRF : de vrais problèmes

Image pour le titre du contenu
Les CSRF sont parfois écartées du revers de la main, comme un problème bénin, mais on commence à voir des applications réelles : comme le cas de David Airey qui s'est fait détourner son nom de domaine durant ses vacances pour un problème de CSRF sur GMail.
Le virus insérait un filtre supplémentaire dans GMail, qui envoyait une copie de tous les messages à une autre adresse : celle du pirate. A partir de la, le pirate a pu demander, légitimement, à son registrar les informations de transfert, et fait envoyer le nom de domaine ailleurs.
A la base, le virus a été injecté lorsque le pauvre David a visité un site vérolé, tout en ayant GMail ouvert en même temps. Le site a initié une requête pour ajouter le filtre, et la victime ne s'est aperçu de rien.
Lisez l'ensemble de l'histoire (qui se finit bien), pour bien mesurer les implications d'une petite faille CSRF. Au passage, il est recommandé de bien se déconnecter de tous les sites importants avant de surfer sur internet. A la Rasmus, vous pourriez aussi avoir un navigateur pour vos sites importants, un autre pour le surf de tous les jours. Ce n'est pas pratique, mais cela reste le plus sur.

3 février – Nexen.net: Gestion de dépendances objets

Image pour le titre du contenu
Les dépendances d'objets font partie des problèmes classiques en programmation : une ressource a besoin d'une autre pour fonctionner. Or, la programmation objet pousse à écrire des objets indépendants les uns des autres. Comment résoudre cette quadrature du cercle?
Avec des conteneurs et des usines. Ces dernières produisent des objets et les font interagir. Elles prennent en charge l'unicité et la sécularité des objets, tout en assurant que chaque objet a bien les ressources dont il dispose. Troels Knak-Nielsen en a fait tout un tutoriel.

4 février – PHP Index: Zend Form

L'une des nouveautés apparue avec le Zend Framework 1.5 est le Zend_Form.

Ce composant vous permet de créer des formulaires très facilement par l'utilisation de trois méthodes différentes selon votre préférence.
Vous aurez ainsi la possibilité de créer vos formulaires grâce à des arrays, des objets ou enfin des fichiers INI.

Pour chaque méthode, il vous suffira de déclarer les champs et les fonctions à y appliquer puis de laisser Zend_Form se charger de la création du formulaire.

Voici un court exemple avec la méthode array :

$form = new Zend_Form(array(
	'action' => '/user/login',
	'method' => 'post',
	'elements' => array(
		'username' => array('text', array(
			'validators' => array(
				'alnum',
				array('regex', false, array('/^[a-z]/i')),
				array('stringLength', false, array(6, 20))),
			'required' => true,
			'filters' => array('StringToLower'))),
		'password' => array('password', array(
			'validators' => array(
				array('stringLength', false, array(6))),
			'required' => true,)),
		'submit' => 'submit',),));
Ce composant vous laisse une grande liberté de paramétrage pour créer aussi bien des formulaires basiques que des formulaires complexes.

Source
Guide de démarrage rapide

Proposé par Clément Péronneaud

4 février – PHP Index: Zend Platform 3.6

Une nouvelle version de Zend Platform, la plate-forme de développement et de déploiement PHP de Zend Technologies, est disponible depuis le 22 janvier 2008.

Les principales nouveautés de cette version 3.6 concernent tout d'abord les performances avec une amélioration de la gestion du cache (cache basé sur les url, cache en utilisant les namespaces, cache en mémoire) et une optimisation de la bande-passante utilisée pour les téléchargements.

Le monitoring a également été amélioré avec un meilleur suivi des erreurs HTTP, des processus d'Apache et des exceptions Java provenant de Java Bridge et avec une nouvelle fonctionnalité permettant de reproduire les problèmes survenus dans un environnement de production sur des serveurs de développement.

Notons enfin une amélioration de la gestion de clusters qui permet de déployer une application PHP sur différents serveurs.

4 février – tigrou/pwet.fr: eZ Find, Solr and eZ Publish

I'm working on a professionnal project using eZ Find extension and I must say that I'm very impressed by this extension and even more by Solr . Last october at the developper day , Paul Borgermans told us a lot of good points about Solr. I was a bit skeptical about the technological blend (PHP + Java) but the search webservice provided by Solr is a very clever solution much more efficient and scalable than the Lucene extension with PHP Java bridge module and its memory problems .

For the project, I added custom sorting on content object attributes or meta attributes and indexing of external contents (not in the eZ Publish database). Solr is pretty well documented and it has an impressive number of options and can be use in any project. If you want to integrate Solr in a PHP project, there is a good article in IBM developperWorks about Solr with PHP where you can find a PHP Solr Client .

4 février – PHP Index: PostgreSQL 8.3

La nouvelle version de PostgreSQL a été publiée aujourd'hui avec de nouvelles fonctionnalitées et d'importantes améliorations de performances.

Au programme des nouveautés on retiendra entre autres :
- L'ajout des types ENUM, UUID et des tableaux composites
- La possibilité de choisir la place du NULL lors d'un ORDER BY
- Le support de la syntaxe SQL/XML
- La réutilisation des espaces libérés lors des DELETE/UPDATE
- La validation asynchrone des transactions (Asynchronous Commit)

La liste complète des nouveautés de cette version est disponible dans le changelog.

Site officiel de PostgreSQL
ChangeLog
Télécharger

Proposé par LACHAUD Fabien

4 février – Nexen.net: Solutions Linux 2008 et AG AFUP : les photos

Image pour le titre du contenu
Les photos du Salon Linux, comprenant la longue collection de pin-up avec l'éléphpant, ainsi que les photos de l'assemblée générale de samedi dernier sont maintenant en ligne. Vous pourrez ainsi découvrir le nouveau bureau AFUP, tout en couleurs!

4 février – Nexen.net: Première visite PHP 6

Image pour le titre du contenu
Pour le salon Linux, j'ai regardé de plus près PHP 6 pour préparer ma conférence sur cette nouvelle frontière qui devrait s'ouvrir dans l'année. J'ai rassemblé plusieurs informations intéressantes rassemblées durant la préparation de cette session dans un premier article consacré à la future version : les premiers contacts sont très prometteurs en termes de vitesse d'exécution.
L'enregistrement de la conférence sera mis en ligne d'ici les prochains jours. Mais les slides sont déjà accessibles. Et en français.

5 février – PHP Index: Tutoriel CakePHP

Un tutoriel pour CakePHP par IBM

CakePHP est un framework de développement rapide pour PHP qui procure une architecture extensible pour le développement, la maintenance et le déploiement d'applications réduisant les coûts de développement et le nombre de lignes de code écrites par le développeur.

Pour faciliter son utilisation, un tutoriel en plusieurs étapes est proposé, allant de la simple mise en place du framework à l'utilisation avancée du cache pour optimiser l'application.

Système requis :
- Un serveur HTTP supportant les sessions
- PHP V4.3.2 ou plus
- Un gestionnaire de base de données
- Une base de donnée

Tutoriel

Proposé par Clément Péronneaud

5 février – PHP News: Apache derrière un proxy

Si vous utilisez Apache derrière un Load Balancer tel que HAProxy, ou alors derrière un Lighttpd avec mod_proxy, celui-ci ne verra plus que comme adresse IP cliente l’adresse du proxy, et non l’adresse IP de votre visiteur. Cependant, celle-ci est réécrite par le proxy dans les entêtes HTTP via le champ X-Forwarded-For.

Voilà donc deux choses à ne pas oublier si vous êtes dans une telle configuration :

  • Pour récupérer en PHP l’adresse IP du client, il faut utiliser $_SERVER['HTTP_X_FORWARDED_FOR'] et non $_SERVER['REMOTE_ADDR']
  • Il faut changer l’enregistrement des logs Apache pour afficher la vraie adresse cliente. Pour cela, il faut modifier les directives LogFormat de la configuration Apache en ramplacant “%h” (qui correspond au “Remote host”) par “%{X-Forwarded-For}i” (qui correspond à l’entête HTTP X-Forwarded-For reçue par Apache) :
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common

5 février – Nexen.net: Le dilemme des versions pour les hébergeurs

Image pour le titre du contenu
Il y a des chances que vous tombiez directement sur un hébergeur en PHP 4 par défaut, de nos jours. Malgré la poussée forte de PHP 5, les hébergeurs sont réticents à faire le saut : beaucoup de code n'est compatible qu'avec PHP 4, et ne supporte pas PHP 5.
La meilleure solution est encore de préparer les deux configurations, et de laisser les utilisateurs décider de leur migration via une interface d'administration (c'est déjà ce que fait
Nexen Services sur ses hébergements mutualisés).

5 février – Nexen.net: Les elephpants sur Facebook

Image pour le titre du contenu
Il semble que je vais finalement devoir ouvrir un compte facebook : les éléphpants ont leur groupe maintenant sur facebook!
Il y a aussi un groupe sur flickr.
Rien encore dans les videos, mais je n'ai pas encore posté ma création du salon linux... wait and see.

5 février – Nexen.net: Les pages 404 sous brevet Amazon

Image pour le titre du contenu
Via Pierre-Alain Joye et le monde informatique, on découvre le brevet 7,325,045 qui décrit rien de moins que le traitement des situations où une ressource ne peut pas être chargée par un ordinateur. Cela couvre bien sûr les pages 404, mais d'autres situations (ressources indisponibles, inaccessible...). Deja, avec le brevet one-click d'Amazon, on avait vu les limites du système de brevets américains.
Mais que cherche-t-il à protéger avec ce type de brevet?

5 février – Nexen.net: Quatre moyens pour échanger des données entre PHP et Flash

Image pour le titre du contenu
Les formulaires Flash imposent un canal de communication particulier entre PHP et le client. Pour envoyer les informations, Flash utilise l'URL, tandis que PHP retourne une page complète, avec un corps au format XML. DevX vous montre comment réaliser les deux opérations dans un exemple de formulaire réel.

5 février – Nexen.net: Q&R avec Mårten Mickos, CEO de MySQL AB, à propos de l'Acquisition par Sun

Image pour le titre du contenu
Colin Charles reçoit Mårten Mickos en entrevue pour faire le point sur l'acquisition de MySQL par Sun. On y apprend que si MySQL visait le milliard l'an dernier, c'est toujours d'actualité : leur objectif est d'atteindre 1 milliard de dollars de revenues, (et pas de prix d'acquisitions). Il reste beaucoup de chemin à faire, mais MySQL espère y arriver plus vite avec l'aide de Sun.
Mårten Mickos insiste aussi sur les bonnes relations que MySQL entretient avec de nombreuses bases de données (hormis les grosses, apparemment), et qui lui permettront de cohabiter de manière fructueuse avec la communauté PostGreSQL chez Sun.

6 février – Nexen.net: Conférences Zend Framework

Image pour le titre du contenu
Les étudiants de la licence Professionnelle WebDeveloppeur de l'INSSET à Saint-Quentin (Picardie) organisent une journée conférences sur Zend Framework le jeudi 21 fevrier 2008.
La journée se décomposera en 2 :
- Le matin avec une présentation de l'AFUP et de PHP, du Zend Framework, du projet Inist-CNRS et une comparaison des différents Frameworks
- L'apres midi sous la forme de Tutoriaux

6 février – PHP Index: J'entreprends en Bourgogne

Après le lancement de la plate-forme e-bourgogne en 2004, la région Bourgogne continue d'apporter son aide au développement économique de la région avec la mise en ligne en septembre 2007 du site J'entreprends en Bourgogne, portail d'aide et de ressources pour les entreprises de la région.

Présenté le 05 février 2008 lors d'une conférence de presse à Paris, le projet repose entièrement sur des technologies libres. Le site a été développé en PHP avec une base de données MySQL et des applications telles que SPIP et EzPublish pour la gestion de contenu ou AKIO pour la gestion des mails.

Le choix des logiciels libres permettra à d'autres collectivités de pouvoir mettre en place un site similaire comme les régions d'Alsace, d'Auvergne et de Bretagne qui semblent déjà intéressées.

Pour en savoir plus
La Bourgogne mène sa politique économique en ligne
Aides aux PME : La Bourgogne pilote en ligne
J'entreprends en Bourgnogne

6 février – PHP Index: Plug-in générateur de classe PHP pour Eclipse

Créez vos classes PHP à partir de d'une base de données.

Ce plug-in Eclipse (PHP Class Generator Plugin) est un outil permettant de générer automatiquement des classes PHP reflétant la structure de vos tables de base de données. A chaque table est associée une classe, chacune contenant un attribut pour chaque champ en base, ainsi que les méthodes "getters" et "setters" pour récupérer ou affecter une valeur à ces champs. Cet outil est initialisé à partir d'un template XML à créer soi-même contenant les informations que l'on souhaite générer (attributs/méthodes supplémentaires, génération des setters/getters), gérant également les types static/public/private des méthodes.

Ce plugin peut être assez intéressant si l'on développe de cette façon (Objet, une table=une classe PHP) et que vos tables disposent de nombreux champs, les méthodes classiques (getters, setters) seront générées automatiquement pour seulement quelques lignes de commande dans le template XML. De la même façon les méthodes d'insertion et de mise à jour de ligne peuvent être généralisées puisque le plug-in se charge de les définir en fonction de la structure de la table. Rien n'empêche bien sûr d'adapter ces définitions par la suite mais le plug-in peut vous épargner un travail souvent très répétitif.

Lire l'article
PHP Class Generator Plugin

6 février – PHP Québec: 5/16 9:00 codeFest PHP Québec 2.1



L'équipe de PHP Québec est fier de vous invitez au codeFest 2.1 qui aura lieu le 16-18 Mai 2008 à Montréal & Sherbrooke.
Le codeFest est une bonne opportunité pour rencontrer d'autres membres de la communauté OpenSource de PHP, Python, Ruby, Java et échanger sur divers techniques de développement.

Nous invitons les développeurs Juniors & Senior à ce joindre à nous pour deux jours d'optimisation & d'écriture de test unitaire pour votre projet OpenSource préféré.

Les projets proposés sont:
* MediaWiki
* Drupal
* WordPress
* TikiWiki CMS/Groupware
* BeWelcome
* Habari
* Anne G. wikigraphe
* PHP Quebec Employment section
* Votre projet (contactez nous, contact@codefest.com)

Les objectif du codeFest sont:
* Écrire des tests unitaires afin d'augmenter la qualité des applications OpenSource
* Optimiser les applications proposé

Nous sommes présentement à la recherche de:
* 1-2 commanditaires afin de fournir la nourriture et consommations (500$) contacter ylarrivee@phpquebec.com
* Une personne pour prendre en charge le développement sur Drupal
* Une personne pour prendre en charge le développement sur Typo3
* Une personne pour prendre en charge le développement sur WordPress

Date & Lieu:

À Montréal
Vendredi 16 19:00-22:00 (social)
Samedi 17 9:00-18:00 (codeFest)
Dimanche 18 9:00-18:00 (codeFest)

Lieu : L'ESCALIER
Address: 552, Sainte-Catherine est,Montreal, Quebecl
Metro: Metro Berri-Uqam
Map : http://tinyurl.com/5hnb3d

À Sherbrooke:
Date : 16-18 Mai 2008
Heure : 9:00am-6:00pm
Lieu : 975-3, rue Perry, Sherbrooke, Qc
Map : http://tinyurl.com/4vt8wx
Voir : http://blog.autre-chose.org/2008/05/11/troisieme-codefest/

Confirmez votre présence sur:
* On UpComing : http://upcoming.yahoo.com/event/319522/
* On Facebook http://www.facebook.com/event.php?eid=6086277831

================================================
The PHP Quebec team is pleased to invite you to the codeFest PHP Quebec 2.1 that will be held in Montreal & Sherbrooke on May16th-18th 2008.

The codeFest is a great opportunity to meet with peers PHP, Python, Ruby, Java developers and share knowledge and participate in the development of OpenSource software.

Senior & Junior developers from the PHP, Python, Ruby, Java community are invited to join us for 2 days of optimization & Unit Testing of your favorite OpenSource project.

Proposed Projects in 2.1:
* MediaWiki
* Drupal
* WordPress
* TikiWiki CMS/Groupware
* BeWelcome
* Habari
* Anne G. wikigraphe
* PHP Quebec Employment section
* Your project! (Contact us contact@codefest.wscontact at codefest.ws

Goal:

* Improve the performance of OpenSource projects
* Improve code quality of OpenSource projects by writing UnitTest

We are currently looking for:
* 1-2 Sponsor to help cover expenses such has food and drinks (500$) contact ylarrivee@phpquebec.com
* Project leader for Drupal
* Project leader for WordPress
* Project leader for Typo3

In Montreal
Date & Time
Friday 16th 19:00-22:00 (social/casual/unofficial warm-up)
Saturday 17th 9:00-18:00 (codeFest)
Sunday 18th 9:00-18:00 (codeFest)
Location : L'ESCALIER
Address: 552, Sainte-Catherine est,Montreal, Quebec
Metro: Metro Berri-Uqam
Map : http://tinyurl.com/5hnb3d

In Sherbrooke:
Date : May 16th-18th 2008
Time : 9:00am-6:00pm
Location : 975-3, rue Perry, Sherbrooke, Qc
Metro : N/A
Map : http://tinyurl.com/4vt8wx
See : http://blog.autre-chose.org/2008/05/11/troisieme-codefest/

Also on:

* On UpComing : http://upcoming.yahoo.com/event/319522/
* On Facebook http://www.facebook.com/event.php?eid=6086277831

6 février – PHP Québec: 3/12 15:30 Salon de l'emploi OpenSource PHP Québec

L'équipe de PHP Québec vous invites au 'Salon d'emploi open source et 5@7'.

À partir de 15h30 le mercredi 12 mars, tous les visiteurs de la conférence, développeurs et membres des diverses communautés locales sont invités à rencontrer les entreprises et les chasseurs de tête à la recherche de développeur, chef d'équipe, gestionnaire de base de donnés, gestionnaire de systèmes qualifiés. Vous pouvez également prendre un verre et discuter avec d'autres développeurs PHP passionnés.

Recruteurs
Si vous êtres une entreprise à la recherche de personnel qualifié de la communauté open source, c'est l'événement idéal.

* Louez un espace pour 500$ et apportez votre kiosque pour une visibilité maximale
* Louez un espace pour 500$ et obtenez l'équipement de base gratuitement
* Rendez-vous à l'événement gratuitement pour rencontrer de potentiels employés

Pour plus d'informations veuillez communiquer avec nous.

Chercheurs d'emploi
Trouvez d'excellentes opportunités d'emploi. Plus important, parlez directement aux employeurs potentiels dans une ambiance détendue. Cet événement est ouvert à tous. Lorsque vous vous enregistrez via le formulaire ci dessous, vous obtenez à votre arrivée un badge spécial "chercheur d'emploi" avec votre nom.

Boissons gratuites
Tous les visiteurs inscrits aux PHPLabs auront droit à des consommations gratuites pour créer un environnement encore plus confortable. Ceci facilitera les conversations entre les chercheurs d'emploi et les recruteurs.

Date & Emplacement
Date : Mercredi 12 mars
Heure : Début à 15h30 jusqu'à 19h00
Lieu : Sofitel Montreal 1155 Sherbrooke Ouest. (Métro Peel)

Enregistrement pour le salon de l'emploi
http://conf.phpquebec.com/fr/emplois

=====================================================================================

The PHP Québec team invites you to the 'Open Source Job Fair & Cocktail'

Starting at 3:30 p.m. on Wednesday, March 12th, all conference visitors, local developers & community members are invited to meet with companies and head hunters that are looking for qualified developers, team leaders, database administrators and system administrators. Or, simply join us to enjoy a few drinks and talk with other passionate Web developers.

Recruiters
If you are a company that is looking for qualified personnel from the open source community, this is the perfect event to attend to.

* Rent a booth space for 500$ and bring your own kiosk for greatest visibility
* Rent a booth space for 500$ and get basic equipment for free
* Attend the event for free and meet your potential employees

For more information please contact us.

Job Seekers
Find great job opportunities. Most importantly, speak right away with potential employers in a relaxed environment. This event is open to everyone.
When you register using the form below, you will receive a special 'Job Seeker' badge with your name upon arrival.

Free Drinks
All PHPLabs attendees will have free drinks to create an even friendlier environment. This will facilitate conversations between the job seekers and recruiters.

Date & Location
Date : Wenesday, March 12th
Time : Starting at 15h:30 until 19h:00
Location : Sofitel Montreal 1155 Sherbrooke West. (Metro Peel)

Register
http://conf.phpquebec.com/en/emplois

6 février – Nexen.net: Comment assurer la compatibilité ascendante?

Image pour le titre du contenu
Tous les utilisateurs veulent la compatibilité ascendante, pour ne pas avoir à faire de modification entre deux versions. Ils seront unanimes sur le sujet. Mais l'évolution d'une API reste un problème d'anticipation crucial pour les développeurs : on ne peut ni le prévoir ni le gérer.
Boy Baukema a rassemblé les 6 stratégies de compatibilité ascendante pour un projet, et vous y retrouverez sûrement le votre. N'oubliez jamais que la compatibilité n'est jamais qu'une hypothèque sur l'avenir.

  • Concevoir très bien son API

  • Incuber

  • Obsolescence

  • Versions

  • Mises à jour

  • Recommencer


Chaque approche peut être vue comme une solution de remplacement de la précédente : au début, on conçoit l'API suffisamment. Puis, quand elle n'est plus assez souple pour continuer, on la remplace par une version 2, jusqu'à ce que les modifications soient tellement grandes... qu'on reprend tout à zéro.

6 février – Nexen.net: Vidéo PHP et MySQL, édition 31

Image pour le titre du contenu
Voici les 5 dernières vidéos PHP et MySQL.


Ces vidéos sont publiés sur les sites de partagent de vidéo. Ce sont des tutoriels enregistrés, des sessions de conférences, des screencast ou encore des slides de conférences.



N'hésitez pas à nous contacter pour signaler tout media qui mérite d'être ajouté à cette liste.

6 février – Nexen.net: Performances de PHP : de 3.0.18 à 5.3.0-dev

Image pour le titre du contenu
Sebastian Bergmann publie un atelier de performances portant sur les versions 3.0.18, 4.3.11, 4.4.7, 5.0.5, 5.1.6, 5.2.5, 5.3.0-dev. L'outil de mesure est le script Zend/bench.php, et l'ensemble des données est présenté dans un magnifique graphique eZ components : ce dernier est un peu difficile à lire, mais on voit clairement les performances particulières de chaque opération s'améliorer au fur et à mesure que PHP croît en version. Cela rejoint le test PHP 6 que j'ai mené la semaine dernière.

6 février – Nexen.net: Roadmap 2008 pour les eZ components

Image pour le titre du contenu
Derick Rethans publie la nouvelle roadmap des eZ components pour 2008. Au programme :

  • Document : conversions entre différents formats, en se concentrant sur le nouvel éditeur OE et eZ Publish 4 au début.

  • ExtendedReflection : couche de base pour l'analyse du code source, pour construire un framework de génération de services Web (contribution externe).

  • Feed : manipulations de RSS/ATOM

  • Recherche : indexation et requêtes avec Solr et d'autres moteurs de recherche

6 février – Nexen.net: Injections de dépendances dans le Zend Framework

Image pour le titre du contenu
Les objets travaillent mieux quand ils sont associés : cette approche impose alors que deux objets se rencontrent pour réaliser une tâche et cette contrainte s'appelle une dépendance. Un objet dépend d'un autre. Lequel va créer l'autre et comment les faire se rencontrer?
Il y a le constructeur et les accesseurs pour réaliser les premières compositions d'objets, et il existe aussi l'injection de dépendance : on passe par un objet intermédiaire, qui prend en charge la création des objets, et éventuellement, leur remplacement par une version de simulation. Pádraic Brady vous montre comment cela marche dans le Zend Framework.

7 février – PHP Index: NaturalGlam crée son site de e-commerce personnalisé en 45 jours

NaturalGlam déploie son site e-commerce en 45 jours

NaturalGlam a mis en place un site d'e-commerce basé sur une plateforme LAMP en seulement 45 jours.

Le site est développé sur une base de Drupal auquel ont été ajoutés des modules afin de satisfaire les besoins du projet. Le choix de l'utilisation des technologies LAMP s'est justifié par le faible coût de l'hébergement ainsi que la quantité de ressources de prestataires compétents dans ce secteur.

Lire l'article sur indexel.net
NaturalGlam

7 février – PHP Index: JDnet : MySQL / Ingres

Comparatif MySQL/Ingres sur JDNet

Publié sur JDN, un article fort intéressant compare l'évolution de MySQL et d'Ingres, deux gestionnaires de bases de données relationnelles.

D'un côté, nous avons le SGBD jeunot bien connu sur le web, très utilisé par les sites Internet basés sur l'Open Source et tout juste racheté par Sun Microsystems.

De l'autre, un des concurrents qui se destinait initialement aux grands comptes et administrations, semble avoir perdu dans ce domaine face à Oracle et tente maintenant de renaître dans le monde du libre.

Lire l'article

Proposé par Clément Péronneaud

7 février – PHP Index: Séminaires web par Zend

Prochains webinaires proposés par Zend

Résultat de la contraction des mots 'web' et 'seminar', les webinaires (traduction française qui en découle) sont des conférences web où l'orateur présente en première partie un sujet, suivies de questions-réponses de la part de l'audience.

Suite aux sorties des nouvelles versions de ses applications, Zend propose une série de webinaires sur l'utilisation ou l'optimisation de ces applications et composants (conférence en anglais).

Pour vous y inscrire, suivez les liens ci-dessous présentant chaque webinaire et cliquez sur 'More Informations'.

- Amélioration des performances des applications web avec Zend Platform
- Zend Framework : Authentification
- Zend Framework

Proposé par Clément Péronneaud

7 février – Nexen.net: Actualité de développement PECL, edition 187

Image pour le titre du contenu
3 paquets ont été mis à jour cette semaine :

  • en memcache (0 visite) : cache mémoire

  • en perforce (0 visite) : interface Perforce

  • en sqlite3 (0 visite) : sqlite 3


PECL est la bibliothèque d'extensions C de PHP.

 



 

7 février – Nexen.net: MySQL et PostGreSQL sont sur un bateau Sun....

Image pour le titre du contenu
Jay Pipes raconte : "Quand je vais dans une conférence, je me fait invariablement demander par quelqu'un : "Alors, vous êtes en concurrence féroce avec PostgreSQL, hein?" Ma réponse est typiquement "Non, pas vraiment", à la grande surprise de l'interlocuteur".
Vous trouverez beaucoup d'articles (anciens?) qui opposent PostGreSQL et MySQL, les présentant presque comme des soeurs ennemies. Pourtant, les canaux de communications entre les deux projets sont nombreux, et aucun d'entre eux n'a fini par prendre le pas sur l'autre. Avec le support de Sun qui va maintenant à PostGreSQL et à MySQL, on peut s'attendre à voir des rapprochements se faire, plutôt que l'un phagocytant l'autre. PostGreSQL tiendra d'ailleurs une session complète durant la prochaine conférence MySQL.

8 février – z-f.fr: Livre : Zend Framework in Action

Forum: Brèves
Auteur: philippe
Écrit le: Fri, 08 Feb 2008 00:06:13 +0100
Dernier message: Wed, 09 Apr 2008 14:23:39 +0200

8 février – Kamelot Blog: PHP 6 et l'unicode au FOSDEM

Schedule: Unicoding With PHP 6

Andrei Zmievski vient présenter "Unicoding With PHP 6" au fosdem le 23 Février 2008 à 15h au JANSON

Le support d'Unicode est la nouvelle fonctionnalité principale de PHP 6. La présentation a pour but d'en présenter les avantages.

Don't be left behind as the software world moves towards language and cultural sensitivity. Speaking Unicode is all the rage these days and this session will show what PHP has learned and how easy it will be to work with multilingual text.

Cette présentation donnera un aperçu des principales caractéristiques du support de l'Unicode et permettra d'illustrer les nouvelles fonctionnalités d'internationalisation avec une variété de démonstrations sur des sujets tels que:

  • Conversion de jeux de caractères
  • analyse des limites de Texte
  • travail avec des dates et calendriers internationaux
  • Translittération et normalisation
  • Travailler avec les jeux de caractères et propriétés

9 février – Nexen.net: Les erreurs à éviter pour un programmeur PHP

Image pour le titre du contenu
Lors de la réalisation d'un projet en PHP, il est possible de repérer les developpeurs PHP qui sont dit "parresseux". Reinhold Weber dresse sur son blog une liste de 40 signes permettant d'effectuer rapidement un repérage du code.
Son étude correspond à une approche totalement subjective de sa part et se trouve très orienté vers Eclipse.
Mais certains points de ces 40 signes, peuvent être appliquer sur l'ensemble des projets PHP. Voici quelques signes importants :
- Absence de méthodologie cohérente
- Absence de normes de codage, de nomage et les conventions générales
- Ne pas utiliser un débogueur
- Aucune optimisation des requêtes sql
- Aucune liste de gestion intelligente des erreurs
- Ne pas utiliser les expressions régulières
- Ne pas comprendre les avantages et les limites de la programmation orientée objets
- Ne pas avoir un seul et unique fichier de configuration
- Absense d'optimisation de votre conception de l’application en fonction des patterns
- Polluer l'espace de nommage global, une option est à préfixer les fonctions dans votre bibliothèque avec un string

9 février – Arnaud Limbourg: Sécurité PHP5 et MySQL

Il y a quelques temps déjà Damien Seguy m'a demandé si je voulais bien faire une revue de son livre "Sécurité PHP5 et MySQL", j'ai accepté avec grand plaisir et peu de temps après il m'a envoyé un exemplaire (la partie disclaimer comme disent nos amis anglo-saxons).

Le livre passe en revue de nombreuses considérations à prendre en compte lors du développement d'applications web. Bien sur des composantes tiennent du bon sens et sont applicables ailleurs que le web.

Le sommaire (repris du site Eyrolles):

  # Risques liés aux applications web

    * Introduction à la sécurité des applications web
    * Vulnérabilités des pages web
    * Formulaires et téléchargement ; valider les données
    * Cookies et sessions

 # Mesures de sécurité pour PHP

    * Installation et configuration de PHP
    * Intégrité des scripts PHP
    * Risques liés aux bases de données
    * Vulnérabilités des base de données
    * Mesures de sécurité pour MySQL

 # Mesures de sécurité pour les technologies connexes

    * Mesures de sécurité côté serveur
    * Techniques de sécurisation des applications web
    * Mener un audit de sécurité

Le plan est clair est progressif, les aspects simples précédents les attaques plus tordues. Les auteurs rappellent à tout moment qu'il s'agit de faire un compromis entre les différents éléments d'un système dont la sécurité fait partie.

Si vous débutez ou n'avez jamais pris l'aspect sécurité de façon sérieuse je vous recommande vivement d'acheter cet ouvrage. Vous y apprendrez toutes les bases nécessaires.

Pour ceux déjà familier avec la sécurité il servira de référence. Vous pourrez aussi le laisser négligemment traîner sur votre bureau pour le porter à l'attention de vos collègues. Et enfin il vous donnera bons arguments lors des discussions avec vos responsables.

9 février – Arnaud Limbourg: Sécurité PHP5 et MySQL

Il y a quelques temps déjà Damien Seguy m'a demandé si je voulais bien faire une revue de son livre "Sécurité PHP5 et MySQL", j'ai accepté avec grand plaisir et peu de temps après il m'a envoyé un exemplaire (la partie disclaimer comme disent nos amis anglo-saxons).

Le livre passe en revue de nombreuses considérations à prendre en compte lors du développement d'applications web. Bien sur des composantes tiennent du bon sens et sont applicables ailleurs que le web.

Le sommaire (repris du site Eyrolles):

  # Risques liés aux applications web

    * Introduction à la sécurité des applications web
    * Vulnérabilités des pages web
    * Formulaires et téléchargement ; valider les données
    * Cookies et sessions

 # Mesures de sécurité pour PHP

    * Installation et configuration de PHP
    * Intégrité des scripts PHP
    * Risques liés aux bases de données
    * Vulnérabilités des base de données
    * Mesures de sécurité pour MySQL

 # Mesures de sécurité pour les technologies connexes

    * Mesures de sécurité côté serveur
    * Techniques de sécurisation des applications web
    * Mener un audit de sécurité

Le plan est clair est progressif, les aspects simples précédents les attaques plus tordues. Les auteurs rappellent à tout moment qu'il s'agit de faire un compromis entre les différents éléments d'un système dont la sécurité fait partie.

Si vous débutez ou n'avez jamais pris l'aspect sécurité de façon sérieuse je vous recommande vivement d'acheter cet ouvrage. Vous y apprendrez toutes les bases nécessaires.

Pour ceux déjà familier avec la sécurité il servira de référence. Vous pourrez aussi le laisser négligemment traîner sur votre bureau pour le porter à l'attention de vos collègues. Et enfin il vous donnera bons arguments lors des discussions avec vos responsables.

9 février – Nexen.net: Alertes sécurité des applications PHP et MySQL, édition 182

Image pour le titre du contenu


PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.5 et 4.4.8; MySQL 5.0.51 (communauté) , 4.1.22, ainsi que 5.1.22-beta et 6.0.3.
Les mises à jour sont recommandées vers ces versions.



5 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Joomla, WordPress et phpBB



9 février – Nexen.net: Actualité de développement PEAR, edition 182

Image pour le titre du contenu
4 paquets ont été mis à jour cette semaine :

PEAR est la bibliothèque de composants PHP.

 



 

10 février – Nexen.net: Comment créer une date aléatoire en PHP

Image pour le titre du contenu
Pour générer un nombre aléatoire, il y a la fonction rand() de PHP. Pour créer une date aléatoire, vous pouvez créer directement un timestamp : cela vous donnera des dates dans l'époque Unix, à partir du 1er janvier 1970. Ou bien ajouter un nombre de secondes aléatoire à partir d'une date arbitraire, pour obtenir des valeurs plus concentrées autour d'une date particulière.

10 février – Nexen.net: Rappel : toutes les méthodes magiques de PHP

Image pour le titre du contenu
PHP dispose de méthodes magiques. Absentes, elles forcent PHP à utiliser un comportement par défaut. Présente, elles permettent de personnaliser un comportement. Et avec la venue de PHP 5, elles sont nombreuses. Les connaissez-vous toutes?

  • __construct()

  • __destruct()

  • __set()

  • __get()

  • __call()

  • __toString()

  • __sleep()

  • __wakeup()

  • __isset()

  • __unset()

  • __autoload()

  • __clone()

11 février – Glagla.org: Inclure “correctement” des fichiers en PHP

Bon, soyons clair, voici la bonne méthode pour inclure des fichiers PHP. Par exemple, si vous voulez inclure le fichier raoul.php sous le répertoire include. < ?php require_once (dirname(__FILE__).'/include/raoul.php'); La constante __FILE__ nous donne le chemin absolu du fichier courant et dirname son répertoire. Vous me direz, quel intérêt de faire cette manipulation, un simple < ...

11 février – PHP Index: SVG sous PHP

Tutoriel pour gérer du SVG avec PHP

Lu sur www.devx.com, un article en anglais propose un tutoriel afin d'apprendre à utiliser du SVG sous PHP.

Scalable Vector Graphics (SVG) est une spécification du W3C. C'est un format de fichier basé sur XML permettant de décrire des ensembles de graphiques vectoriels.

Trois techniques simples sont présentées en début de tutoriel :
- En convertissant directement tout document SVG en document PHP (en modifiant simplement l'extension) et en ajoutant le type MIME 'image/svg+xml' en header
- En incluant le document SVG via les balises 'object' ou 'embed' dans le document PHP
- En générant le code SVG dynamiquement avec la commande 'echo' de PHP

Outre ces méthodes basiques, ce tutoriel propose les bases pour utiliser trois librairies générant du SVG :
- phpHtmlLib
- PEAR::XML_SVG
- PEAR::Image_Canvas

Tutoriel

Proposé par Clément Péronneaud

11 février – PHP Index: Définir des fonctions personnalisées avec Yahoo! Web Services

Le site devshed.com vient de publier un nouveau tutorial dans la série " Using Yahoo! Web Services with PHP 5 ", dans lequel vous verrez comment définir vos propres fonctions PHP5 afin de tirer au mieux parti de l'API Yahoo!

C'est avec des exemples concrets que l'auteur nous montre comment exploiter au mieux le résultat des recherches effectuées avec le service de recherche de l'API Yahoo!. Vous y apprendrez comment créer vos propres fonctions afin de traiter le flux XML retourné lors d'une recherche classique, d'une recherche d'images ou encore d'une recherche de vidéos.

D'autres tutoriels devraient paraître prochainement, toujours dans la série " Using Yahoo! Web Services with PHP 5 ".

Tutorial

Proposé par LACHAUD Fabien

11 février – Nexen.net: SPL à la rescousse des tableaux multidimensionnels

Image pour le titre du contenu
"Quand on a un tableau multi-dimensionnel, il faut parfois l'analyser de fond en comble, et pour cela, écrire du code spécifique. Un moyen très simple pour y arriver est d'utiliser la bibliothèque SPL de PHP.'"
C'est aussi vrai pour les autres structures hiérarchisées, telles que les dossiers.