Hier, 01net a publié un article sur Sqlite et son intégration dans Adobe Air. A cette occasion, j’ai été interviewé afin de donner mon avis sur cette technologie intégrée nativement dans PHP depuis la version 5.0 :
lire l’article
Comme nous le savons tous, le but d'un mot de passe est avant tout de rester connu d'une personne ou d'un groupe de personne. Sa divulgation entraine alors la perte complète de son efficacité et de sa sécurité. Lorsque le mot de passe devient connu d'une personne tierce, alors cette dernière peut par exemple s'approprier des droits sur une application et compromettre son fonctionnement normal. Un mot de passe est une donnée extrêmement sensible et convoitée par des pirates, quelle que soit l'application qui l'utilise.
5 paquets ont été mis à jour cette semaine :
PEAR est la bibliothèque de composants PHP.
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.23-beta et 6.0.3.
Les mises à jour sont recommandées vers ces versions.
7 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Joomla, PHP Nuke, Plume CMS, WordPress, Xoops et ming
Ilia Alshanetsky publie la première version candidate pour PHP 5.2.6, la RC1. C'est une version de stabilité, qui corrige 97 bugs, et met à jour PCRE vers la version 7.6. Ilia annonce un cycle de publication court, ce qui vous incite à le télécharger rapidement, pour le compiler localement et s'assurer que tout va bien.
D'un autre coté, celle que l'on attend tous, la version 5.3, est disponible sur le site de snaps, comme d'habitude, avec un chargement énorme de fonctionnalités nouvelles.
Faites chauffer les compilateurs.
Parfois, la solution la plus rapide n'est pas toujours la meilleure. Si une requête de jointure produit plusieurs fois la même ligne, est-ce que DISTINCT est la bonne solution ? C'est clairement un cas où on guérit les symptômes, et non pas la cause du mal. Guiseppe Maxia en a plus à vous dire à ce sujet.
Depuis Février 2008, Ovidentia 6.6.2 est disponible en téléchargement.
Cette nouvelle version intègre de nombreuses évolutions fonctionnelles depuis la version 6.5.2.
Parmi les évolutions notables de la 6.6.2 :
* Droits par défaut sur les Catégories de thèmes d'articles
* Filtres et tris supplémentaires sur les listes du Gestionnaire de tâches
* Editeur WYSIWYG dans le gestionnaire de tâches
* Containeurs OvML pour le gestionnaire de tâches
* Duplication d'Organigrammes
* Thésaurus étendu aux répertoires de fichiers
* Application de droits sur les sous-répertoires du gestionnaires de fichiers
L'entreprise EditeurScripts à mis au point un progiciel permettant la création de devis factures, avoirs, ... au format PDF.
Celui-ci convient parfaitement aux PME voulant s\'offrir un logiciel de qualité avec des documents 100% personnalisés grâce à des fonds de facture interchangeables.
Depuis février 2008, Ovidentia 6.6.2 est disponible en téléchargement.
Cette nouvelle version intègre de nombreuses évolutions fonctionnelles depuis la version 6.5.2.
Parmi les évolutions notables de la 6.6.2 :
* Droits par défaut sur les Catégories de thèmes d'articles
* Filtres et tris supplémentaires sur les listes du Gestionnaire de tâches
* Editeur WYSIWYG dans le gestionnaire de tâches
* Containeurs OvML pour le gestionnaire de tâches
* Duplication d'Organigrammes
* Thésaurus étendu aux répertoires de fichiers
* Application de droits sur les sous-répertoires du gestionnaires de fichiers
Depuis février 2008, Ovidentia 6.6.2 est disponible en téléchargement.
Cette nouvelle version intègre de nombreuses évolutions fonctionnelles depuis la version 6.5.2.
Parmi les évolutions notables de la 6.6.2 :
* Droits par défaut sur les Catégories de thèmes d'articles
Il est possible d'appliquer des droits par défaut sur une Catégorie de thèmes d'articles. Ces droits seront automatiquement appliqués pour tout thème créé ultérieurement dans cette Catégorie, et restent éventuellement modifiables.
La mise à jour en 6.6.2 est sans effet sur les Catégories et Thèmes déjà existants.
* Filtres et tris supplémentaires sur les listes du Gestionnaire de tâches
On peut désormais filtrer les listes de tâches par date de début, date de fin et/ou en distinguant les tâches achevées des tâches en cours de réalisation.
De plus, les listes, jusque là triées par défaut par date de début, sont triables par l'utilisateur par Nom, Type, Date de début, Date de fin,
* Editeur WYSIWYG dans le gestionnaire de tâches
L'écran de création de tâches s'est maintenant enrichi de l'éditeur WYSIWYG que vous utilisez dans Ovidentia, et vous permet de mettre en forme le texte de votre tâche, mais surtout de créer des liens vers des articles, fichiers, FAQ...
* Containeurs OvML pour le gestionnaire de tâches
Le langage s'est enrichi de trois containeurs permettant respectivement de remonter les informations des Espaces projets, des Projets, et des Tâches. Plus d'information dans la documentation OvML.
* Duplication d'Organigrammes
En allant dans Administration > Organigrammes et en cliquant sur le nom d'un organigramme, vous pouvez non seulement éditer le nom et la description de l'organigramme, mais également dupliquer cet organigramme. L'original et la copie constitueront deux organigrammes indépendants : les modifications de l'un n'affectent pas l'autre.
Ils seront en revanche tous deux basés sur le même annuaire. Si l'organigramme "original" était basé sur l'arborescence de groupe et l'annuaire Utilisateur, la copie sera elle aussi basée sur l'annuaire Utilisateur, mais ne pourra pas exploiter les groupes pour créer des entités.
* Thésaurus étendu aux répertoires de fichiers
Le Thésaurus est désormais une entrée à part dans les sections Administration et Utilisateur (comme les Articles, les Faq, etc...). Les répertoires du gestionnaire de fichiers peuvent désormais exploiter les mots-clés renseignés dans le Thésaurus, et se limiter à ces seuls mots-clés, ou continuer à fonctionner comme avant (ce qui est le comportement par défaut).
* Application de droits sur les sous-répertoires du gestionnaires de fichiers
Cette fonctionnalité longtemps attendue est enfin réalisée. Désormais, un gestionnaire de répertoires de fichiers peut créer des sous-répertoires sur lesquels des droits et des options particulières s'appliqueront.
Cette dernière évolution impacte fortement l'organisation de votre répertoire d'upload. Nous vous recommandons vivement d'effectuer une sauvegarde de votre environnement (base de données, fichiers/répertoires WWW ainsi que les fichiers/répertoires d'upload) avant toute mise à jour.
Le chemin d'accès aux fichiers changeant à l'application de cette mise à jour, les liens composés à la main et pointant directement vers un fichier ne fonctionneront plus. Les liens générés par l'éditeur WYSIWYG ($File ou $Folder) continueront bien sûr à fonctionner.
Proposé par Nicolas
Bon, c'est peut être exagéré, mais vous rirez sûrement beaucoup à lire ou essayer les CAPTCHA proposés sur le site de John Willis. Ils sont tous délirants.
Merci à Philippe Gamache pour ce lien.
Un article intéressant présente l'opportunité que propose le Zend Framework de s'intégrer dans d'autres frameworks. En effet, comme cela a été déjà discuté sur ce site, ZF a la capacité de proposer un ensemble de classes autonomes (ZF me fait assez penser à PEAR de ce point de vue) présentant ...
Classe de gestion simplifiée de connexion à MySQL en PHP5. Cette classe dispose de sa propre gestion des erreurs. Elle renvoit des exceptions de type MySQLException.
L\'AFUP (Association Française des Utilisateurs de PHP) propose un nouveau rendez-vous sur Paris le 25 Mars 2008.
Ce rendez-vous sera consacré au theme suivant : \"Outiller la qualité PHP\" comprenant la Stratégie, les réflexes et les bonnes pratiques pour un développement web durable.
Pour plus d\'information, il suffit de vous rendre directement sur la page du site de l\'AFUP.
PHP 5.2 devient la deuxième version de PHP la plus populaire : durant le mois de Février 2008, PHP 5.2 a dépassé PHP 4.3, comme 2eme version populaire. Ce mois de février a d'ailleurs vu un taux record d'adoption de PHP : +2,5% des sites web dans le monde ont franchi le pas, établissant un nouveau record mondiale.

Le graphique ci-dessous vous montre d'ailleurs l'évolution de la vitesse d'adoption de PHP : le graphique est clairement ascendant, et montre que PHP 5 est en phase d'adoption. La saturation du marché arrivera lorsque cette vitesse redescendra. Il reste encore du potentiel a exploiter avant d'en arriver là.
La version 2.11.5 de PhpMyAdmin vient de paraître.
Cette nouvelle version corrige 9 failles de sécurité de type injection SQL, il est donc recommandé de migrer vers cette version.
Télécharger
Description des corrections apportées
Proposé par Fabien LACHAUD
Forum:
Brèves
Auteur: philippe
Écrit le: Tue, 04 Mar 2008 09:01:40 +0100
Dernier message: Tue, 04 Mar 2008 09:01:40 +0100
Quelques semaines à peine après la parution Drupal 6.0 voici sa première version de maintenance, la version 6.1.
Au programme de cette nouvelle version, plusieurs corrections de failles de sécurité et d'autres bugs mineurs. Il est donc vivement recommandé aux utilisateurs de Drupal 6.0 de migrer au plus vite vers la version 6.1.
Télécharger
Détail des corrections apportées
Proposé par Fabien LACHAUD
TYPO3 4.2 est maintenant disponible en version Beta 3. Cette nouvelle version n’apporte que quelques améliorations mineures par rapport aux deux précédentes.
Parmi celles-ci, on notera que :
- des modifications ont été apportées au niveau du support de l’UTF-8.
- l’ajout d’une option permettant de désactiver le paramètre no_cache.
- la nouvelle barre d’outils à été améliorée.
La version finale sera disponible fin mars et nécessitera au minimum PHP 5.2.
A noter aussi que la version 4.1.6 de TYPO3 est disponible en téléchargement. Il s’agit d’une version destinée à corriger plusieurs bugs présents dans les versions 4.1.
Télécharger TYPO3 4.1.6
Télécharger TYPO3 4.2 Beta3
L'AFUP (Association Française des Utilisateurs de PHP) propose un nouveau rendez-vous sur Paris le 25 Mars 2008.
Ce rendez-vous sera consacré au theme suivant : "Outiller la qualité PHP" comprenant la Stratégie, les réflexes et les bonnes pratiques pour un développement web durable.
Pour plus d\'information, il suffit de vous rendre directement sur la page du site de l'AFUP.
Pour en savoir plus... cliquez ici
RoundCube Webmail est un navigateur à base de client IMAP multilingue avec une interface utilisateur.
Il prévoit toutes les fonctionnalités que vous attendez d'un client e-mail, y compris le support MIME, carnet d'adresses, un dossier de manipulation, le message de vérification orthographique et de la recherche.
RoundCube Webmail est écrit en PHP et requiert une base de données MySQL ou Postgres.
L'interface utilisateur est entièrement skinnable utilisant XHTML et CSS 2.
eval() est décidément un gouffre à performance !
Voici le script que j'ai utilisé pour comparer les performances de l'instanciation d'un objet avec eval ou avec new. (j'utilise php 5.2.5).
<?php
$nb_iteration = 400000;
class toto {
public $raoul;
}
$class_name = 'toto';
$start_time = microtime(true);
for ($i=0; $i <= $nb_iteration; $i++) {
eval ('$objet = new toto();');
}
$end_time ...
The PHP Quebec Conference team is pleased to invite you to legendary PHP Quebec Conference closing party.
Join the speakers, sponsors and organizers and celebrate the success of the 2008 PHP Quebec Conference and experiment the festive spirit behind the PHP community.
We will be meeting for a festive and cultural diner where you will discover the aboriginal and the Nouvelle-France cuisine in a traditional setup. Musicians, comedians and various games will sure show you the spirit that existed in the Nouvelle-France.
Back in 2008, the party will continue at the bar Les deux Pierrots.
Joins us for a good time guaranteed!
In order to participate in the activity, you need to register by Thursday 13th at 18:00. To register please send an email to
ylarrivee@phpquebec.com. Leave your name, phone number, how many people will come with you.
Location
- Le Cabaret du Roy (
http://www.oyez.ca/Cabaret/accueil.html)
- Les deux Pierrots (
http://www.lespierrots.com/)
City: Montreal
Date : March 14th
Time: 6:30
Facebook :
http://www.facebook.com/event.php?eid=22086497920UpComing :
http://upcoming.yahoo.com/event/448501===================================
L'équipe PHP Québec vous invite au party de clôture de la Conférence PHP Québec le vendredi 14 Mars.
Venez célébrer le succès de la conférence PHP Québec 2008 avec les conférenciers, commanditaires et organisateurs de la conférence lesprit festif de la communauté PHP.
La soirée débutera à 18 :30 par un repas festif à laire de la Nouvelle-France. Découvrez la cuisine du terroir Québécois ainsi que des spécialités Amérindiennes dans un décor dépoque. Les comédiens, musiciens ainsi que les divers jeux vous immergerons dans lambiance festive de la Nouvelle-France.
De retour en 2008, la fête se poursuivra au bar chansonniers Les Deux Pierrots.
Une expérience à ne pas manquer!
Afin de pouvoir participer à cette activité vous devez vous inscrire avant le jeudi 13 mars à 18h00, en envoyant un courriel à
ylarrivee@phpquebec.com. Laissez vos coordonnés (nom, prénom, téléphone) et le nombre de personnes qui seront avec vous.
Lieu :
- Le Cabaret du Roy (
http://www.oyez.ca/Cabaret/accueil.html)
- Les deux Pierrots (
http://www.lespierrots.com/)
Ville: Montréal
Date : 14 mars
Heure: 18 :30
Facebook :
http://www.facebook.com/event.php?eid=22086497920UpComing :
http://upcoming.yahoo.com/event/448501
L'équipe de la Conférence PHP Québec vous invite à déjeuner à la Cabane à Sucre.
C'est une occasion unique pour tous ceux qui ne peuvent venir à la conférence de rencontrer les auteurs du langage, les conférenciers, les sponsors et les organisateurs de la conférence, tout en profitant du bon temps des sucres.
Afin de pouvoir participer à cette activité vous devez vous inscrire avant le jeudi 13 mars à 18h00, en envoyant un courriel à
ylarrivee@phpquebec.com. Laissez vos coordonnés (nom, prénom, téléphone) et le nombre de personnes qui seront avec vous.
De plus, nous sommes à la recherche de personnes possédant un véhicule pour faire du co-voiturage. Si vous avez des places libres, merci de bien vouloir nous en faire part.
Lieu : Sucrerie de la Montage
Ville: Rigaud
Heure: 11:00
Map:
http://tinyurl.com/2yk6ddFacebook :
http://www.facebook.com/event.php?eid=8202249573UpComing :
http://upcoming.yahoo.com/event/448416/===================
The PHP Quebec Conference team is pleased to invite you to its traditional post conference Sugar Sack brunch.
Its a unique opportunity for all community members who were not able to meet with the speakers/sponsors at the conference to come and enjoy a good brunch after in a casual atmosphere.
In order to participate in the activity, you need to register by Thursday 13th at 18:00. To register please send an email to
ylarrivee@phpquebec.com. Leave your name, phone number, how many people will come with you.
We are also looking for people that would like to help with the transportation. Please let us know.
Location : Sucrerie de la Montage
City: Rigaud
Time: 11:00
Map:
http://tinyurl.com/2yk6ddFacebook :
http://www.facebook.com/event.php?eid=8202249573UpComing :
http://upcoming.yahoo.com/event/448416/
La société Zend, très connue dans le language PHP, vient annoncer le portage de PHP et de l'ensemble de leurs produits sur des serveurs Windows Server 2008.
Rappelons que PHP est un langage de scripts libre coté serveur et à une présence très importante sur internet. Il est souvent associé à la plate-forme d'applications Web open source LAMP sous un environnement Linux.
COPS signifie Cranky Ol 'PHP'er syndrome (Syndrome Grincheux de 'PHP'er)... C'est la définition que sous entend Travis Swicegood.
Travis Swicegood a travers son blog, décrit les problèmes de cette drole de maladie car meme si c'est dans l'esprit humouristique, nous pouvons penser qu'il a été confronté à celle-ci.
Alors peut-etre que vous aussi, vous l'avez attrapé !!!
PS : pour voir l'article, il faut cliquer sur le lien avec le clic droit, nouvelle fenetre
L'équipe de PHP Québec est fier de vous invitez à la conférence PHP Québec et
au Salon de l'emploi OpenSource.
Dernière chance de vous inscrire à la Conférence PHP Québec 2008.
Quand : 12 au 14 mars 2008
Où : Hôtel Sofitel, 1155 Sherbrooke Ouest (Métro Peel), Montréal, Québec
Quelques places sont encore disponibles pour assister à la Conférence PHP
Québec 2008 qui propose, cette année, une journée de laboratoires
pratiques, le mercredi, suivie de deux jours de conférences sur les
sujets de l'heure reliés à PHP et aux logiciels libres, le jeudi et
vendredi.
Cliquer ici pour vous inscrire:
http://conf.phpquebec.com/fr/tarifNe manquez pas le tout nouveau Salon de l'emploi & Cocktail des
technologies Open Source qui aura lieu le mercredi 12 mars 2008 dès
15h30 sur le lieu de la Conférence. Le salon de l'emploi est ouvert à
tous et reste une occasion idéale pour recruter des ressources
talentueuses, élargir votre réseau de contact ou propulser votre
carrière de l'avant. Cet événement est commandité par MySQL/Sun.
Cliquer ici pour vous inscrire gratuitement au salon de l'emploi:
http://conf.phpquebec.com/fr/emploisActivités avenir :
- 6 Mars :
Rencontre pre-conférence (Montréal)8 Mars :
PHP Cheers pre-conférence (Québec)12 Mars :
Salon de l'emplois OpenSource PHP Québec- 12-14 Mars :
Conférence PHP Québec- 14 Mars :
Party de fermeture de la conférence PHP Québec- 15 Mars :
Cabane à sucre PHP Québec- 19 Mars :
Laboratoires PHP à Québec- 17-18 Mai :
Codefest PHP Québec 2.1===============
Hello, The PHP Québec team is pleased to invite you to the PHP Québec
Conference & JobFair.
Last change to attend Conférence PHP Québec 2008.
When : March 12th to 14th, 2008
Where : Hôtel Sofitel, 1155 Sherbrooke Ouest (Métro Peel), Montréal,
Québec
A few tickets are still available to attend the Conférence PHP Québec
2008. This year, the Conference proposes a prequel day of PHP Labs,
some very practical sessions that will be held on Wednesday, followed by
the full 2 days conferences on many hot subjects related to PHP and Open
Source software, on Thursday and Friday.
Click here to register :
http://conf.phpquebec.com/en/tarifDon't miss the brand new Open Source technologies JobFair & Cocktail
that will be held on the Wednesday, starting at 3:30 PM. The JobFair
is open to everyone and is a good opportunity to recruit talented
resources. enlarge your social network or give your career a boost
ahead. This event is sponsored by MySQL/Sun.
Click to register for the JobFair for free:
http://conf.phpquebec.com/en/emploisUpcoming events :
- March 6th :
Pre-Conference Meeting (Montréal)March 8th :
Pre-Conference PHP Cheers (Québec City)Mars 12th:
OpenSource JobFair & Cocktail- March 12th-14th :
PHP Quebec Conference- March 14th :
PHP Quebec Conference closing partyMarch 15th :
Sugar Shack PHP Quebec- March 19th :
PHP Lab (Quebec City)- May 17th-18th :
Codefest PHP Québec 2.1
Peter Zaitsev publie deux trucs pour accélérer le traitement de requêtes SQL :
dans le cas d'un GROUP BY sur des chaînes de caractères, qui prendrait du temps à s'exécuter, vous pouvez gagner en performance en faisant le regroupement sur le CRC32 de la colonne, au lieu de la valeur originale. La conversion en entier conduit a une consommation réduite de mémoire, et de meilleures performances. Il faut alors noter que CRC32 peut produire des valeurs doubles, ce qui en fait un comptage approximatif.
Pour travailler sur une grande table, utilisez une sous-requête pour lire uniquement les premières lignes.
Sur le site Ajaxian, on découvre 2 interfaces PHP pour extJS. ExtJS est un framework Javascript, qui permet de produire nombre de widget utiles : onglets, fenêtres d'outils, arbres, grilles, formulaires, etc. ExtJS est écrit en JavaScript, et les bibliothèques ExtPHP et PHP-Ext (notez la variété de noms...) permettent de produire les instructions JS en notation objet PHP.
J'ai découvert ExtJS ce matin, et la bibliothèque à l'air particulièrement utile et efficace. Les bibliothèques PHP se présentent à point pour faire le relais depuis du code PHP vers cette bibliothèque. A suivre...
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 paquets ont été mis à jour cette semaine :
rar (0 visite) : manipulations des fichiers .rar
imagick (0 visite) : interface avec la bibliothèque graphique ImageMagick
SCA_SDO (0 visite) : Service Component Architecture (SCA) et Service Data Objects (SDO) pour PHP
sqlite3 (0 visite) : sqlite 3
xrange (0 visite) : Itérateur d'intervalle pour SPL
inclued (0 visite) : Liste des inclusions dans un script PHP
PECL est la bibliothèque d'extensions C de PHP.
Six revisions propose un guide pour savoir préparer au mieux ses relations avec les clients.
- Connaissez leur niveau d'expertise technique
- Utilisez des exemples pratiques
- Restez proche des besoins de base
- Restez simple
- Incitez-les à poser les questions
- Restez vous-mêmes
Carsten Perdersen publie 4 nouveaux quiz sur MySQL : petits trucs sur ORDER, Distinct, structures de tables et les clés étrangères.
phishme est un site d'entrainement contre le phishing. En quelques clics, vous pouvez monter votre propre site de phishing, et envoyer un mail à une liste d'employés de votre compagnie pour voir quel va être leur réaction. Le site publie alors une statistiques de clics (combien d'employés ont cliqués sur le phish), et une évolution dans le temps de l'activité du phishing. L'application note même le fait que les personnes ont rempli le faux formulaire.
English version below
---
En remplacement de la rencontre mensuelle de mars, PHP Québec vous invite à vous joindre aux organisateurs de la conférence et aux conférenciers sur Montreal dans un souper informel. Le souper se déroulera au 3 Brasseurs.
Afin de réserver pour un nombre de personnes adéquat, veuillez confirmer votre participation par téléphone (514-913-2245) ou par courriel (
lphuberdeau@phpquebec.org) avant 16h.
Les 3 Brasseurs
1658, rue Saint-Denis
Montréal, Québec
Facebook :
http://www.facebook.com/event.php?eid=24087100880Upcoming :
http://upcoming.yahoo.com/event/448653---
In replacement to the PHP Quebec monthly meeting, the organisation of the conference invites you to join the organizers and the speakers in Montreal to an informal dinner. The dinner will be at the 3 Brasseurs.
In order to reserve for the right amount of people, please confirm your participation by phone (514-913-2245) or email (
lphuberdeau@phpquebec.org) before 4 PM.
Les 3 Brasseurs
1658, rue Saint-Denis
Montréal, Québec
Facebook :
http://www.facebook.com/event.php?eid=24087100880Upcoming :
http://upcoming.yahoo.com/event/448653
Si vous possédez un serveur WEB, vous avez surement était confronté à un problème courant : impossible de gérer ses fichiers depuis son navigateur internet.
Ce problème est désormais du passé ! Grâce à NetExplorer, une application Ajax/Web 2.0 réalisée en PHP, il vous sera possible de gérer le contenu d'un serveur Web à l'aide d'une interface graphique et ce depuis votre navigateur internet préféré.
L'équipe de NetExplorer s'est approchée le plus possible d'un système d'exploitation classique que nous connaissons tous. La navigation au sein des fichiers est intuitive et les fonctionnalités disponibles sont nombreuses et variées, de la simple création de répertoire à la gestion des archives zip directement sur le serveur.
Vous allez enfin pouvoir retrouver votre bureau sur votre serveur Web.
N'attendez plus, découvrez l'explorateur de fichiers AJAX NetExplorer !

Proposé par NetExplorer
Je viens de mettre en ligne 3 nouveaux addons pour WampServer :
- Apache 2.2.8
- Apache 2.0.63
- MySQL 5.0.51a
J’en ai également profité pour mettre à jour WampServer 2.0 (qui passe donc en 2.0b), qui profite également au passage d’une mise à jour de PHPmyadmin (2.11.5) et de quelques corrections mineures.
Pour ceux qui ont déjà installé la version 2.0a, je conseille d’installer les addons plutôt que de mettre la version 2.0b par dessus. Normalement, l’upgrade devrait fonctionner sans problème, mais j’avoue ne pas avoir testé tous les cas de figure possibles et imaginables, donc il vaut mieux éviter.
Bon dev à tous 
MySQL 6.0.4, avec la dernière version de Falcon, est disponible au téléchargement. MySQL 6.0 inclut essentiellement le nouveau moteur Falcon, développé pour MySQL par Jim Starkey. MySQL 6 n'inclut pas encore le moteur Maria, de Monty Widenius (il faut la version 5.1.24-maria pour cela).
MySQL 6.0.4 apporte 6 correctifs de sécurité, portant sur la réplication, les partitions, yaSSL, rename table, federated table, alter table. Ces problèmes ont été corrigés dans les versions 5.0.48 à 51a, et 5.1.20 à 5.1.23. Un total de 262 bugs ont été corrigés.
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é), 5.1.23-beta et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
7 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Drupal, Gallery, Horde, Joomla, PHP Nuke, WordPress et phpMyAdmin
J'ai écouté avec beaucoup d'intérêt l'émission 'Sun and MySQL Townhall', publiée sur Google. Zack Urlocker, Jonathan Schwartz et Rich Green discutent du rachat de MySQL par Sun, et abordent les questions d'intégration.
Parmi les points qui n'avait échappé jusqu'à présent, c'est que Sun dispose de 12000 brevets, et que MySQL dispose aussi de 3 brevets. Malgré les campagnes anti-brevet que mène la compagnie, ils ont déposé 3 brevets auprès du bureau des brevets USA, autour de points techniques pour le cluster. Je n'en ai pas trouvé en Suède, ni France, ni Allemagne, ni Europe, (mais la barrière de la langue est parfois impossible).
Dans la vidéo, Sun et MySQL affichent la même politique de dépôt de brevets : c'est un mouvement défensif, destiné à protéger les clients et la communauté. Il semble que MySQL AB préfère ne pas voir de brevets du tout, mais que s'ils existent, il vaut mieux les utiliser.
Ma première réaction a été une grande surprise. Les explications qui vont avec cette découverte me paraissent totalement raisonnables, mais un peu risquée pour l'avenir, et assez paradoxal avec les déclarations anti-brevet. Et vous, qu'en pensez-vous?
Note : la mention des brevets est autour de la minute 23 de la vidéo.
Simple Spreadsheet est un projet soeur de simple-groupeware, et se destine à être une alternative de Google Spreadsheet. Grâce à une interface Javascript évolué, on retrouve les sensations d'un tableur classique : mise en forme, création de graphiques, éditions de formules. Il manque peut-être diverses formes d'exportations (seul csv est géré). Le tout peut aussi fonctionner entièrement localement, sans l'aide de Apache ou PHP, qui ne sont nécessaires que pour les graphiques. C'est donc un tableur entièrement en JavaScript.
Je vais vous présenter ici une technique de ré-écriture d’URL en PHP. Nous l’appellerons URL Rewriting via PATH_INFO. Celle-ci est un peu particulière, elle est indépendante d’Apache. Elle fonctionnera même si votre hébergeur désactive le ModRewrite ou si vous utilisez un serveur web alternatif. Prenons (...)
Cette année encore, Google propose le Summer of Code ! Ce programme offre une bourse de l’ordre 4 000 $ à des étudiants pour qu’ils participent à des projets Open Source pendant leurs vacances. Fort de mon expérience de l’édition passée, je vais tenter de vous expliquer comment être sélectionner et mener (...)
Après de nombreux mois d'attente depuis la version béta, voici la sortie de PHP-GTK 2 en version finale.
Pour rappel PHP-GTK est une extension de PHP qui permet de créer des applications graphiques pour Windows et Linux.
Dans cette version, nous pouvons trouver :
- Amélioration de l'API
- Support de GTK+ jusqu'a 2.12
- Custom Gtypes
- ...
Il y a quelques jours, Fabien a annoncé la disponibilité de Symfony 1.1 beta 1 dans le dépôt du projet. Symfony 1.1 est un changement majeur au niveau architecture, et la compatibilité ascendante est rompue en de nombreux points. Pour un outil éminemment basé sur les conventions, cela implique une réappropriation de ces dernières quand elles ont changé - mais c'est là le prix à payer pour bénéficier des nouvelles fonctionnalités. Et elles valent le coup !
Ce billet sera donc le premier d'une série destinée à explorer les fonctionnalités phares de cette preversion. On commence par le commencement avec la procédure d'installation.
Remarques préliminaires
Nous ne verrons pas la procédure de mise à jour d'un projet en symfony 1.0 vers la version 1.1[1]. On verra ça plus en détail sur ce blog si les CNTP le permettent. Pour l'heure, on partira donc d'un projet vierge en 1.1.
Installation de Symfony 1.1
Il faut pour l'heure installer Symfony 1.1 à partir des sources subversion ; voici une démarche possible, en admettant que vous disposez d'un environnement Unix/Linux[2] :
$ mkdir vendor && cd vendor
$ svn co http://svn.symfony-project.com/branches/1.1/ symfony11
$ sudo ln -s `pwd`/symfony11/data/bin/symfony /usr/bin/symfony11
Je crée ici un lien symbolique symfony11 accessible depuis /usr/bin, ce qui permettra de gérer aussi bien des projets en 1.0 qu'en 1.1[3].
Pour vérifier que tout s'est bien déroulé, vous pouvez lancer cette commande :
$ symfony11 -V
symfony version 1.1.0-DEV (/Users/niko/www/vendor/symfony11/lib)
Création d'un nouveau projet
Grâce à notre nouvelle installation isolée de Symfony 1.1, on peut créer un projet et une nouvelle application main via cette série de commandes :
$ cd /path/to/workspace
$ mkdir sf11test && cd sf11test
$ symfony11 generate:project sf11test
$ ./symfony generate:app main
Vous noterez que toutes les commandes ont été renommées par rapport à la version 1.0 et qu'elles utilisent désormais des espaces de noms spécifiques à certains domaines : generate:, propel:, plugins:, log:, etc. Pour lister l'ensemble des tâches en lignes de commande disponibles, vous pouvez lancer la commande symfony11 telle quelle, ou utiliser l'executable symfony disponible à la racine de votre projet :
$ ./symfony
Notez que l'emploi de symfony11 ou ./symfony a la racine de votre projet ont ici strictement le même effet, puisque les deux exécutables référencent la même installation de Symfony.
Il nous reste à créer un VHost Apache[4] minimaliste pour accéder à notre projet au travers de notre navigateur :
<VirtualHost *>
ServerName local.sf11test.org
DocumentRoot %PROJECT_ROOT%/web
<Directory "%PROJECT_ROOT%/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf %VENDOR_ROOT%/symfony11/data/web/sf
ErrorLog %PROJECT_ROOT%/log/error.log
CustomLog %PROJECT_ROOT%/log/access.log common
</VirtualHost>
N'oubliez pas de remplacer les chaînes %PROJECT_ROOT% et %VENDOR_ROOT% par les chemins système correspondant (respectivement la racine du projet et la racine de votre répertoire vendor créé précédemment).
On ajoutera également une entrée dans le fichier /etc/hosts pour avoir la résolution du nom local.sf11test.org localement :
127.0.0.1 local.sf11test.org
Si toutes les étapes ont été correctement suivies et après avoir rechargé la configuration d'Apache, en lançant notre navigateur préféré sur l'adresse local.sf11test.org, nous obtenons :

Ça vous rappelle quelque chose ? 
La suite au prochain épisode, avec les formulaires dont la gestion a été entièrement revue en Symfony 1.1.
Edit : J'ai modifié l'url du dépôt pour faire pointer vers la branche 1.1, qui évolue constamment, comme suggéré par Fabien en commentaire 
Pour ceux qui veulent mettre à jour du tag vers la branche, il faut lancer cette commande à la racine de votre répertoire vendor :
$ svn switch http://svn.symfony-project.com/branches/1.1/ symfony11
Un petit ./symfony cc s'imposera dans vos projets utilisant le dépôt.
Cela fait déjà plus de deux semaines que le concours de tutoriels s'est achevé et toujours pas de nouvelles des résultats. C'est de ma faute, je n'étais pas trop présent ces derniers jours... Entre les cours et le boulot, je n'ai pas trouver le temps de m'occuper...
Hugo Hamon publie les concurrents et le gagnant du concours de tutoriel PHP : c'est David Drapeau, qui gagne, avec son article "nstaller un environnement LAMP 6 sur Debian".
Voici la liste des concurrents, tous publiés en ligne.
- Migration de PHP4 vers PHP de Cyril Pierre de Geyer
- Installer un environnement LAMP 6 sur Debian de David Drapeau
- Imagfilter() : les effets spéciaux de Christophe Villeneuve
- Introduction aux Cross Site Request Forgeries ou Sea Surf de Damien Carret
Depuis PHP 5, de nouvelles possibilités nous sont offertes pour la réalisation de pages internet, par exemple l'utilisation de MySQL améliorée, appelé MySQLi.
Un article a été réalisé pour le site ASP-PHP.net pour montrer deux nouvelles approches entre le langage PHP et une base de donnée, et par conséquent l'utilisation de deux interfaces :
- Une interface orienté orientée objet
- Une interface procédurale
Pour connaitre la suite de l'article, il suffit de vous rendre directement sur le site :
PHP & MySQLi... Cliquez ici
echo Propel::getConnection()->getLastExecutedQuery();
Certes la barre de débogage de symfony peut vous renseigner. Mais avec 7200 requêtes dans votre page vous êtes bien content de pouvoir générer une trace spécifique ;-) (à afficher ou écrire dans un log).
via prendre un Snippet.
Nous venons de voir la procédure d'installation de la beta1 de Symfony 1.1. Nous allons maintenant rentrer un peu plus dans les détails des nouvelles fonctionnalités en commençant par les formulaires.
La gestion des formulaires avec Symfony 1.1
La nouvelle gestion des formulaires est l'une des fonctionnalités majeures de cette nouvelle mouture du framework. Elle propose une séparation claire entre couche de contrôle, couche de définition et couche de présentation des données, soit un bon vieux pattern MVC des familles.
Pour illustrer ces fonctionnalités, nous allons retrousser nos manches et créer un formulaire de contact basique. On commence par initialiser un nouveau module contact dans l'application main de notre projet sf11test initié précédemment :
$ ./symfony generate:module main contact
Création d'une classe de formulaire
Nous allons créer une classe qui représentera notre formulaire de contact, que nous stockerons dans le fichier apps/main/lib/ContactForm.class.php. Cette classe étendra la classe de base sfForm et surchargera sa méthode de configuration afin de définir les champs de formulaire et les différents validateurs associés. Nous définirons quatre champs (appelés widgets en Symfony 1.1) :
- Le nom de l'expéditeur, sous la forme d'un champs de saisie textuelle (
<input type="text"/>)
- Son adresse email, également sous la forme d'un champs de saisie textuelle
- Le sujet de son message, sous la forme d'une boîte de sélection (
<select/>)
- Le texte de son message, sous la forme d'un champs texte multilignes (
<textarea/>)
<?php
class ContactForm extends sfForm
{
public function configure()
{
// Widgets
$topics = sfConfig::get('app_contact_topics', array());
$widgetSchema = new sfWidgetFormSchema(array(
'topic' => new sfWidgetFormSelect(array('choices' => $topics)),
'name' => new sfWidgetFormInput(),
'email' => new sfWidgetFormInput(),
'message' => new sfWidgetFormTextarea()
));
$widgetSchema->setNameFormat('contact[%s]'); // HTML field names format
$this->setWidgetSchema($widgetSchema);
// Validators
$this->setValidators(array(
'topic' => new sfValidatorRegex(array('pattern' => '/[a-z_]/')),
'name' => new sfValidatorString(array('min_length' => 2,
'max_length' => 45)),
'email' => new sfValidatorAnd(array(new sfValidatorEmail(),
new sfValidatorString(array('max_length' => 100)))),
'message' => new sfValidatorString(array('min_length' => 10)),
));
}
}
Au passage, nous ajoutons les sujets possibles de message dans le fichier de configuration apps/main/config/app.yml :
all:
contact:
topics:
carrots_request: Do you have carrots?
eggs_request: Do you have eggs?
Marquons un arrêt pour examiner de plus près ce que nous venons d'écrire :
- Nous avons ajouté 4 widgets à notre formulaires,
- Nous avons défini et paramétré leurs validateurs associés,
- Au passage, vous noterez qu'il est possible de spécifier plusieurs validateurs pour un même champs, comme c'est ici le cas pour le champs
email
- Nous avons défini le format de nommage des champs de formulaire et choisi une syntaxe à base de tableau pour manipuler plus aisément les données dans notre action,
- Nous avons déporté une partie de la configuration textuelle dans un fichier externe dédié, pour en faciliter la maintenance.
N'oublions pas de purger le cache de Symfony, car nous venons d'ajouter un nouvel objet php :
$ ./symfony cc
Interaction avec le formulaire depuis le contrôleur de l'application
Éditons maintenant le fichier apps/main/modules/contact/actions/actions.class.php pour y définir l'action par défaut du module[1] :
<?php
class contactActions extends sfActions
{
p