Frederico s'est penché de nouveaux sur PHP et plus particulièrement sur les classes et les composants utiles touchant PHP.
Ce qui permet de dire que le langage PHP, est devenu le langage favori du Web.
La liste qu'il propose, concerne les thèmes suivants :
-
Base de donnée
-
Outil de Développement
-
Test unitaire
-
Debugage
-
Deploiement
-
Securité
-
Email
-
L'authentification de l'utilisateur
-
PHP et XML
-
Manipulation image
-
Graphiques et tableaux
-
Modèle Moteurs
- Documents
Dans la plupart des développements professionnels ou de grande envergure, il est nécessaire de savoir structurer correctement son application dans le but de faciliter sa conception et sa maintenance. Les « design patterns », où « patrons de conception » en français, constitue l'une des meilleures solutions à cette problématique. Avec le nouveau modèle orienté objet de PHP 5 proche de celui de Java, l'implémentation des design patterns est facilitée. Ce tutoriel s'intéresse à la présentation et à l'implémentation du motif Singleton, particulièrement employé au sein des applications web.
Je viens enfin de terminer la version bêta du projet de portage du framework de développement d'application web Struts en PHP5, rebaptisé PHruts (le projet s'appelait PHPMVC5 au départ, en référence au premier portage déjà effectué sous PHP4 par John C. Wildenauer nommé php.MVC).
Je suis arrivé à retrouver les principales fonctionnalités proposées par la version 1.1 de Struts en les adaptant à l'environnement d'exécution sous PHP.
J'ai récupéré et adapté la documentation officielle de Struts en anglais. Je suis actuellement en train d'écrire une série d'article en français sur mon site personnel, décrivant le développement de l'application de démonstration (gestion de comptes clients très simple) fonctionnant intégralement sous PHruts.
Le framework est tout à fait opérationnel et reste en version bêta en attendant d'être testé et éprouvé par le plus grand nombre de développeurs pouvant être intéressés par l'utilisation de ce projet.
Vous êtes expert PHP.
Les Editions ENI recherchent un auteur pour l'écriture d'un livre préparant à la certification ZEND.
Votre expérience, votre expertise apporteraient à ce livre un plus indéniable, et avec un livre édité, votre CV s'enrichit et votre expertise est reconnue.
Si l'aventure vous tente, contactez Isabelle Caprais à l'adresse auteurs arobase eni.fr, l'équipe éditoriale vous accompagnera tout au long du processus.
Les statistiques mensuelles de PHP sont disponibles. Ce mois-ci, PHP 4.4.8 reprend la place de version la plus populaire à PHP 5.2.5, qui chute à la deuxième place : l'explication vient de l'apparition de PHP 5.2.6, qui voit les utilisateurs migrer de 5 vers 6. Il faudra probablement quelques mois avant que PHP 5.2.6 ne repasse devant PHP 4.4.8. Ce dernier continue d'ailleurs d'attirer des utilisateurs, au détriment de PHP 4.4.x
Le rythme d'adoption de PHP 5 s'est ralenti ce mois-ci mais reste soutenue. Apache continue aussi de progresser dans notre étude, et s'approche encore un peu plus de 70% d'adoption.
L’édition 2008 de l'université d’été du CMS open source TYPO3 se déroulera en France du 30 juin au 4 juillet 2008
L’Ecole d'ingénieurs Polytech'Savoie accueillera la première édition française de l’université de TYPO3. Les développeurs de sites et portails web pourront profiter de cette occasion pour découvrir et se former gratuitement pendant une semaine à TYPO3.
Nantes, le 14 mai 2008 – Les principaux organisateurs (Polytech’savoie, Onext Groupe Sodifrance et CYO) annoncent que le 30 juin 2008 débutera à Annecy l'université d'été 2008 de la communauté française de TYPO3 (T3UNI08) qui se déroulera sur le site de l'école d'ingénieurs Polytech'Savoie (Université de Savoie).
Pendant une semaine, les utilisateurs et les développeurs pourront s'informer, se former, s’approprier ou perfectionner leurs connaissances sur ce système de gestion de contenu (CMS) open source qui rencontre de plus en plus d’utilisateurs. Ils bénécifieront d’ateliers, de conférences, de sessions de formation et de prise en main de TYPO3. Les participants pourront « même » s’initier à la programmation en TypoScript et au développement d'extensions.
Pour que chaque participant puisse bénéficier d’un ordinateur, le nombre de places a été limité à 150 (préinscription obligatoire).
Le vendredi 04 juillet auront lieu des conférences animées par des spécialistes internationaux de TYPO3, dont Robert Lemke (Core Team TYPO3), responsable du développement de la future version : "FLOW3" et de TYPO3 V5.
Afin de joindre l'utile à l'agréable, la "T3UNI08" offre différentes possibilités de logement (résidences universitaires et hôtels partenaires). La possibilité de prendre ses repas sur place et un repas de gala sur le lac d'Annecy, à bord du "libellule" (le jeudi soir) est aussi prévus.
La T3UNI08 permettra donc de bénéficier de l'expérience de grands noms du monde de TYPO3 ainsi que de conditions de travail agréables, le tout dans un cadre exceptionnel.
Renseignements et inscription
• Période : du 30 juin au 4 juillet 2008
• Lieu : à l’Ecole d'ingénieurs Polytech'Savoie, 5 chemin de Bellevue, 74940 Annecy-le-Vieux.
• Pour accéder au programme complet : http://uni.typo3.fr/programme.html?L=2
• Plus d’informations sur T3UNI08 : http://uni.typo3.fr
• Inscriptions : http://uni.typo3.fr/fileadmin/docs/T3UNI08_Formulaire_inscription.pdf
Contacts presse
Christophe Delauve, Typehead TYPO3 France & Directeur Marketing, Onext Groupe Sodifrance: cdelauve(at)onext.fr
Proposé par cdelauve
"Le pont PHP/Java permet d'accéder rapidement aux classes Java depuis PHP, sans avoir à connaître Java, et vice-versa. A cause de cette flexibilité bidirectionnelle, vous pouvez accéder à des centaines d'objets Java pré-compilé, et des centaines de classes PHP depuis Java : cela ouvre les possibilités de vos applications Web en termes de flexibilité et de fonctionnalités.
La Zend Platform Java Bridge est l'alternative commerciale au PHP/Java Bridge."
Goosh est une application qui permet de naviguer dans Google comme si on était dans un Shell : tout en ligne de commande. L'émulation du terminal dans un navigateur est très réaliste, et rapide.
L'équipe de PHP Québec de Montréal vous invite aux rencontres mensuelles qui ont lieu tout les premiers Jeudi du mois dans les locaux de l'ETS.
Damien Séguy présentera divers outils qui favorise la maîtrise et l'appropriation du code d'un projet existant. Lors de cette présentation les outils suivant seront analysés : PHP_Control, PHP_Depends, Grep ...
Vous aimeriez faire une présentation ou vous avez un sujet a proposer pour cette rencontre, veuillez contacter les organisateurs
board@phpquebec.comConfirmez votre présence sur :
FaceBook:
http://www.facebook.com/event.php?eid=19383391433Upcoming :
http://upcoming.yahoo.com/event/759067Date : 3 Juillet 2008
Heure : 19h00
Lieu : École de technologie supérieure
Salle : B4416
Metro: Bonaventure
Carte :
http://www.etsmtl.ca/zone2/enbref/rendre.htmlVille : Montréal
Prochaines activités:
- 1 Août PHP Beer
- 2 Août Barbecue PHP Québec
Forum:
Brèves
Auteur: philippe
Écrit le: Wed, 04 Jun 2008 09:16:11 +0200
Dernier message: Sun, 19 Oct 2008 21:22:07 +0200
On cherche un développeur web PHP/MySQL confirmé, pour la maintenance et
l'évolution d'applications web maison au sein de la CCIP. Il faut maitriser la
POO, parler couramment HTML, CSS, MySQL, PHP4 et 5, et ne pas avoir peur des
cahiers des charges rédigés sur un post-it (dans le meilleur des cas). On
demande donc du savoir faire et de l'autonomie, mais les projets sont
intéressants et vous intervenez dessus de A à Z. En plus vous aurez un collègue
super sympa (moi). En tout cas, je ne mords pas ;)
Le poste est basé sur Paris, il s'agit d'un contrat de onze mois
renouvelables. Le salaire est à négocier au couteau, mais vous aurez dix
semaines de congé par an et pas plus de quarante heures par semaine sauf coups
de bourre.
Contactez moi par courriel à l'adresse jducastel chez ccip.fr et je
transmettrai directement votre CV à mon boss. Les filles sont naturellement
acceptées :)
Les ElePHPants se préparent pour le prochain rendez-vous...
Ils montrent leurs pleines formes : Leurs nouvelles réalisations
Démonstration d'un cube en 3 D
avec 12 ElePHPants.
Les ElePHPants toujours en pleine forme montrent 2 jolies textes :
Nexen et AFUP
Les ElePHPants adorent la 3Dimension, ils sont recommencés leus pyramide en 3D, ils ont essayés et ont réussis à refaire unepyramide en 3D avec l'aide du Dresseur ElePHPant (Hello)...
Pyramide de 39 elePHPants qui a tenue quelques minutes comme le montre les photos.
La planete tourne autour du soleil et l'internet bouge tous les jours, c'est pourquoi Il est toujours utile de pouvoir élargir ses compétences...
Un nouveau métier... Dresseur ElePHPants, c'est plus qu'un métier...
Aujourd'hui notre dresseur ElePHPant Hello (alias Christophe Villeneuve) a réussi à renouveller les exploits de ces gentilles betes.
Une nouvelle pyramide 3 D avec 49 elePHPants
Le 1ere cube 3 Dimension avec 12 ElePHPants
et Quelques textes : Nexen, le site Actualité incontournable et le nom AFUP
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.
Brian Moon a étudié in_array, pour en optimiser l'utilisation : un tableau de 400 000 elements, qui devaient être testés avec les éléments d'un autre tableau prenait quelques heures à s'exécuter. Par contre, en passant par isset (et en mettant les valeurs en clés), le résultat a pris... .8 secondes.
in_array, comme array_search, sont assez lents. Et, en général, utiliser les tableaux PHP pour manipuler de grosses quantités de données n'est pas une bonne idée. Jusque vers 100 000 éléments, la différence ne se fait pas souvent sentir, mais au delà, cela devient vite difficile. Je recommande alors un passage en base de données : malgré le temps d'importation, c'est généralement plus efficace.
Dans ce numéro: Les secrets dévoilés d'osCommerce, SQLite : la bibliothèque de la réussite, Vendre facilement avec Joomla! et VirtueMart, Maîtriser THELIA, Synchroniser eZpublish et TinyERP. En plus: Créer son site e-commerce gratuitement, Accepter les paiements en ligne avec PAYPAL et beaucoup d'autres articles à ne pas manquer !
Sur le DVD joint au numéro :
Cours vidéo sur osCommerce, Tutoriel sur THELIA et PACK complet des applications e-commerce !
Visitez le site: http://phpsolmag.org/prt/view/nos-numero/issue/832.html
Proposé par Łukasz Bartoszewicz
dbnewz lance un appel aux questions sur le thème des index MySQL, ces armes à double tranchant, qui peuvent mettre à genoux votre serveur s'ils sont absents ou s'ils sont présents. Si vous vous posez des questions sur leur choix et leur organisation, vous pouvez laisser des messages sur la page du billet ci-dessous, et l'auteur promet de faire un 'livre dont vous êtes le héros' : à vos claviers et à vos dés.
"L'idée folle du jour : un opérateur qui vérifie la conformité d'un objet à une interface sans l'implémenter réellement. Qui voudrait cela?"
Cet opérateur permettrait d'utiliser le concept de duck typing, qui est décrit par cette phrase : "Si ca marche comme un canard, et que ça cancanne comme un canard, alors ce doit être un canard." ("If it walks like a duck and quacks like a duck, I would call it a duck."). En bref, dynamiquement, si un objet présente une interface spécifique, alors, on doit pouvoir l'utiliser avec les outils disponibles pour cette interface, même si l'objet n'a pas été conçu pour. Ainsi, python ne se soucie pas de la classe d'un objet, mais de la liste des méthodes qu'il affiche publiquement, et qui permettent de l'utiliser. Une approche ingénieuse, qui dépasse le typage des classes.
3 paquets ont été mis à jour cette semaine :
ibm_db2 (0 visite) : interface pour IBM DB2
svn (0 visite) : Interface avec le client Subversion
intl (0 visite) : extension d'internationalisation
PECL est la bibliothèque d'extensions C de PHP.
De nombreux sites proposent des scripts PHP, souvent ils sont allimentés par les auteurs eux même ou des personnes proches de ce projet
Nachosa 77 présente plus de 1000 scripts en PHP. Cependant tous les projets ne sont pas présents, mais une grosse partie se trouve référencer, touchant les domaines suivants :
- Management
- Programme affiliation
- Blog
- Bookmark
- Calendriers
- chat
- Petites annonces
- Tracking
- Outils de communication
- Gestion de contenu
- Concours et prix
- Compteurs
- soutien à la clientèle
- Base de données
- Date et heure
- Outils de developpement
- Forum
- Documentation
- E commerce
- Education
- Email
- Echanges
- FAQ
- Manipulation de fichiers
- Outils de finances
- Mise en forme
- Jeux
- Graphiques et tableaux
- Outils Groupware
- Soins de santé
- Galleries Images
- Image Manipulation
- Des liens
- Mailing
- Multimedia
- Librairies de musiques
- Outils de mise en réseau
- News
- Organiseurs
- Les sondages et des votes
- Portail Systems
- Postcards
- Cours d'affichage
- Randomizing
- Redirection
- Recherche
- Systeme de sécurité
- Serveur de management
- Navigation
- Site de recommendation
- Test et quiz
- Hit parade
- Identifation
- Management
- WAP
- Recuperation web
- Outils Web Hosting
- Recherche web
- Analyse traffic web
- XML
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
3 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Gallery, Joomla et e107
6 paquets ont été mis à jour cette semaine :
File_Archive (0 visite) : Manipulations des archives tar, gz
DB_Table (0 visite) : Basé sur PEAR DB, avec des types de données abstraits
PHP_CompatInfo (0 visite) : Recherche les versions et extensions minimum pour exécuter un script PHP
Net_LDAP (0 visite) : Interface objet pour LDAP
Net_LDAP2 (0 visite) : Interface orientée objet pour LDAP
System_Daemon (0 visite) : Transformation de scripts PHP en démons Linux
PEAR est la bibliothèque de composants PHP.
Samedi, j'ai participé au PHPCamp organisé par l'AFUP à la Cantine, à Paris. (Oui je sais, je n'ai pas trouvé pris le temps de l'annoncer, honte sur moi)
Que dire de cette journée ? Tout d'abord parlons du lieu, La Cantine. C'est un endroit agréable, très convivial. Paul, le maître...
Le 8 juin 1995, Rasmus Lerdorf publiait le code initial de PHP, et c'est la date officielle de naissance de la plate-forme. Hier, Dimanche 8 Juin 2008, PHP a passé le cap vénérable de 13 ans!
Bon anniversaire PHP!
"Bien que de blogue soit aussi écrit par toute l'équipe de MySQL Telecom, de nombreux membres de l'équipe ou sa périphérie ont des blogues personnels. Voici donc une liste des meilleurs blogues sur le Cluster MySQL."
Le cluster commence à avoir des applications de plus en en plus nombreuses, et cela vaut la peine de garder un oeil sur les expériences qui ont lieu.
MySQL 5.1.25, la dernière version RC (Release Candidate) de MySQL est publiée. MySQL 5.1.25 inclut essentiellement des corrections de bogues pour la version actuelle, tandis que l'essentiel de l'effort de développement est porté par MySQL 6.0. MySQL 5.0 est toujours la version de référence (GA, en 5.0.51). A noter que le moteur de table Maria et le Cluster MySQL sont des téléchargements distincts.
MySQL 5.1.25 apporte 34 correctifs de bogues ainsi que trois modifications importantes, portant sur les commandes préparées (changement incompatible), les réparations de tables en vue d'une mise à jour, et le script de mise à jour mysql_upgrade.
Joomla! is a free open source framework and content publishing system designed for quickly creating highly interactive multi-language Web sites, online communities, media portals, blogs and eCommerce applications.
Joomla! provides an easy-to-use graphical user interface that simplifies the management and publishing of large volumes of content including HTML, documents, and rich media. Joomla! is used by organisations of all sizes for Public Web sites, Intranets, and Extranets and is supported by a community of thousands of users.
The Joomla! Core Team consists of volunteer developers, designers, administrators and managers who, together with a large range of Work Groups of dedicated community members have taken Joomla! to new heights in its relatively short life. This well-oiled machine is often copied but never surpassed. Joomla! has some wonderfully talented people taking Open Source concepts to the forefront of industry standards. Joomla! 1.5 is a major leap forward and represents the most exciting Joomla! release in the history of the project.
To ensure this code release, Wilco Jansen resorted to sending rum to joint lead-developer Johan Janssens. Johan, who's had a penchant for rum ever since the first "Pirate's of the Caribbean" movie screened, took the bait, mixed it with Cola, and here we are with our latest 1.5 release. It looks like pirate talk will figure quite a lot in future Joomla! development!
The FTP Layer allows file operations (such as installing Extensions or updating the main configuration file) without having to make all the folders and files writable. This has been an issue on Linux and other Unix based platforms in respect of file permissions. This makes the site admin's life a lot easier and increases security of the site.
You can check the write status of relevent folders by going to ''Help->System Info" and then in the sub-menu to "Directory Permissions". With the FTP Layer enabled even if all directories are red, Joomla! will operate smoothly.
NOTE: the FTP layer is not required on a Windows host/server.
This is now implemented by inserting a Read more... tag (the button is located below the editor area) a dotted line appears in the edited text showing the split location for the Read more.... A new Plugin takes care of the rest.
It is worth mentioning that this does not have a negative effect on migrated data from older sites. The new implementation is fully backward compatible.
"J'ai récemment rencontré Michael Kimsal, auteur du livre nouvellement publié "PHP Job Hunter's Handbook", chez php|architect, qui peut être acheté en ligne en PDF ou en version imprimé. Je voulais plus de détails sur les raisons qui l'ont poussé à écrire ce livre, sur son expérience d'écriture et sur les conseils qu'il a partager : cela faisait une belle liste de questions."
TLS report étudie votre configuration SSL (HTTPS, IMAPS, POP3S, SMTPS), et attribue une note de qualité à la sécurité de l'installation : de A (pour les meilleurs, comme strategis.ic.gc.ca, le site de l'industrie canadienne) ou les pires (comme le pilotweb.nas.faa.gov, le site des pilotes d'avion). Nexen Services se classe à la moyenne.
Memproxy se trouve etre un script assez simple d'utilisation mais très puissants.
Ce script est un proxy cache "serveur" et qui utilise la mémoire cache (memcached) et comme ceci, il permet de communiquer vers vos serveurs d'applications. Comme ceci, étant donné qui sert de proxy, il permet d'éviter de lourdes connexions et par conséquent, il réduit les temps de réponse.
Je travaillais sur la conversion de vieux code moisi vers notre framework actuel, en le rendant plus objet, moins dupliqué et plus facile à comprendre. J'ai pensé que je pouvais rassembler mes pratiques pour rendre les classes, objets et interfaces plus "conviviales aux programmeurs".
Habari partage avec nous ses réflexions pour rendre le code plus propre et maintenable. J'ajouterai à sa liste 'Utiliser ses propres interfaces', afin de mieux se mettre à la place de ceux qui auront à utiliser cette production.
Jim Starkey ne poursuit pas l'aventure avec Sun, et quitte MySQL AB. Jim avait été embauché il y a deux ans pour monter un moteur de table MySQL de nouvelle génération (Falcon). Ce dernier est en tête d'affiche pour MySQL 6.0, et Zack Urlocker pense avoir monté une équipe de soutien complète autour du moteur maison pour prendre la suite.
Une courte actualité pour annoncer qu' Apprendre-PHP.com va subir une légère opération de maintenance. En effet, nous nous préparons à déployer le site sur un serveur dédié afin d'assurer de meilleures performances et une configuration plus saine et personnalisée. De ce fait, le site...
169% de CPU et 21% de la mémoire (!), ça fait mal, à se demander ce qu'il peut bien faire avec tout ça... Spéciale dédicace à Simon :p
Eurosport Prédictions est une application Facebook que j’ai développée pour le compte de l’agence KRDS.
C’est la deuxième application réaliser par KRDS pour Eurosport. Le thème de celle-ci est de pronostiquer les matchs de l’Euro 2008, d’établir un classement des meilleurs pronostiqueurs, le premier d’entre eux remportant une TV Plasma 107cm à la fin de la compétition. L’appli est disponible en 5 langues et est co-brandée par Yahoo dans les versions Anglaise, Espagnole, Allemande et Italienne.
Depuis son lancement fin mai, l’application dispose actuellement de près de 90k utilisateurs et se démarque des applications traditionnelles à succès par son taux de Daily Active Users (DAU) qui est de 31% (il y a donc 30 000 personnes revenant quotidiennement sur l’application). Cela s’explique par la nature même de l’application qui demande aux pronostiqueurs de venir régulièrement pronostiquer les prochains matchs et à connaître leurs positionnement.
Même si la durée de vie de l’application n’est que de quelques semaines, un apport quotidien de 30k personnes sur une application réalisée par une marque est un succès pour celle-ci. En disposant intelligemment des liens vers du contenu présent sur les sites eurosport en eux-même (présentation avant-match, match en live, après match), flux rss et vidéos live, cette opération est alors un succès en terme de mise en valeur de la marque, d’apports de trafic et de communication.
Une présence intelligente sur les réseaux sociaux permet aux entreprises de disposer d’un espace de haute visibilité, leur permettant ainsi grâce à des applications “satellites” de qualité de toucher de nouveaux utilisateurs.
Un petit tour de l’application
Page d’accueil (ici en français)

Faire ses pronostics (ici la version anglaise)

Créer son tableau prévisionnel (points supplémentaires)

Le profil d’un pronostiqueur

Une page de “ligue” (regroupement d’amis)

Le classement au 14 juin

Les stats sur adonomics

4 paquets ont été mis à jour cette semaine :
svn (0 visite) : Interface avec le client Subversion
timezonedb (0 visite) : base de données de fuseaux horaires pour PHP
stem (0 visite) : une extension pour travailler sur les mots et leur racine
spread (0 visite) : Interface PHP pour Spread
PECL est la bibliothèque d'extensions C de PHP.
Lors du partitionnement d'une table, on propose souvent de placer les vieilles informations dans une table d'archives, et de garder les informations récentes dans une table plus courte. De cette manière, les informations plus fréquentes sont plus faciles à retrouver.
Mais quand il faut quand même utiliser la table d'archives pour réaliser différentes vérifications (l'unicité par exemple), cela impose une double requête : une sur chaque table. Avec une archive qui est sur un media lent, la partition peut être plus finalement plus lente que l'architecture initiale.
Baron Schwartz a alors pensé à une astuce : en utilisant une variable MySQL, on peut repérer les résultats d'une première requête, et court-circuiter les requêtes suivantes.
2 paquets ont été mis à jour cette semaine :
Cache_Lite (0 visite) : Un système de cache rapide et sécuritaire
Net_SMTP (0 visite) : Implémentation du protocole SMTP
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.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
3 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Gallery, Joomla et WordPress
"PHP_CodeSniffer est un paquet PEAR qui permet de détecter des problèmes courants de programmation, et vous encadrer pour suivre votre style de codage.
Les standards de programmation par défaut sont ceux de PEAR mais vous pouvez facilement changer cela."
Un tutoriel de Daniel O'Connor
Mark Kimsal signe une étude complète sur les différences de protections que propose les fonctions addslashes, addcslashes et mysql_real_escape_string. C'est toujours la première qui est la plus utilisée pour assurer la protection contre les injections SQL, alors qu'elle ne propose pas une couverture complète.
Ce tutoriel est basé sur celui de Falko Timme, qui date du Cluster MySQL 5.0. Il montre comment configurer le cluster MySQL avec 5 noeuds : un noeud de gestion, deux noeuds de stockage, deux noeuds de traitement. Ce cluster est équilibré avec le paquet Ultra Monkey qui fournit le heartbeat (un système de surveillance des noeuds entre eux), etldirectord (pour diviser les requêtes entre les noeuds du cluster).
2008 : une année très fructueuse!

Après la naissance de ma fille Diane (petite sœur d’Adam) et mon mariage avec Sandrine, voici une nouvelle étape importante pour moi franchie cette année.
Comme le dit le titre, Anaska a rejoint le groupe Alter Way afin d’y devenir la Business Unit dédiée à la formation. Une grand moment pour Cyril (mon associé et ami) et moi, 7 ans après sa création, nous donnons à Anaska un nouvel élan avec de nouvelles perspectives et de nouveau enjeux.
Les dates clefs de la vie d’Anaska sont d’ailleurs assez marantes, créée un 1er Avril, elle rejoint Alter Way un vendredi 13…à croire qu’on le fait exprès! Espérons que cela continuera à nous porter chance.
Car on en a eu de la chance depuis le début, à commencer par notre équipe dont chaque membre a su apporter quelque chose de spécial à la team et faire d’Anaska une société différente des autres, un société avec une véritable âme (ce qui est généralement très apprécie par les personnes qui viennent en formation chez nous).
Ce rapprochement va nous (la team) ouvrir de nouvelles portes et nous permettre de nous exprimer sur une palette beaucoup plus large, tout en conservant notre mode de fonctionnement et nos habitudes.
Alors quel est l’enjeu de ce rapprochement pour Anaska?
Et bien tout d’abord, la possibilité de profiter de synergies importantes avec les autres entités du groupe : Nexen, Solinux, Ingeniweb, Ecl ip’s Software et o4db.
La complétude de nos offres va nous permettre de mieux répondre à nos clients en leur offrant des solutions jointes et ainsi, les accompagner au mieux dans leurs besoins.
Nous allons ensuite pouvoir appuyer la croissance d’Anaska sur un groupe d’envergure et profiter de ces appuis pour la dynamiser et la consolider.
En résumé, les avantages de fonctionnement d’une PME (dynamisme, proximité, réactivité…) avec les possibilités d’un groupe.
Anaska change donc de logo (l’ancien logo d’Anaska est officiellement et exclusivement repris par WampServer) mais pas d’état d’esprit!
Vive l’Open Source, vive Anaska et alter Way

Des mises à jour sont disponibles depuis mercredi pour le système de gestion de base de données PostgreSQL. Des mises à jour sont disponibles pour toutes les versions encore maintenues de PostgreSQl, à savoir les versions : 8.2.9, 8.1.13, 8.0.17 et 7.4.21.
Ces mises à jour corrigent, entre autres, un problème d'encodage UTF-8 sous Windows. Certaines tranches horaires ont également été mises à jour, ainsi que l'optimisation des requêtes avec paramètres.
On apprend également que les versions 8.0 et 8.1 ne seront plus maintenues pour la plateforme Windows.
Article
Téléchargements
Changelogs
PHP 5 a apporté son lot de nouveautés en matière de programmation orientée objet, notamment la possibilité d'utiliser des Interfaces. Iterator en est une et nous allons voir comment l'utiliser grâce à ce tutoriel. La structure conditionnelle " foreach " vous permettait jusqu'à lors de parcourir le contenu d'un tableau. Avec la version 5 de PHP, vous pouvez désormais parcourir tout un objet pour récupérer ses propriétés.
"MySQL/Sun a publié un nouveau moteur de table MySQL baptisé "Falcon" en janvier 2007. Falcon est un moteur transactionnel à hautes performances (entièrement compatible ACID) : le moteur est en béta actuellement. Dans cet article, je vais décrire les fonctionnalités de Falcon et son architecture."
Falcon a été initialement créé par Jim Starkey, inventeur de MVCC, des BLOB, d'Interbase, contributeur majeur à Firebird, avec sa femme Ann Harrison. Jim ne fait plus partie de MySQL AB depuis juin, mais l'équipe de travail autour de Falcon reste en place.
Falcon est présente des améliorations très prometteuses par rapport à MyISAM, et même InnoDB : très peu de configuration, support des transactions, hautes performances pour les écritures, lectures simultanées.
Bjr a vous,
je voudrais juste vous signaler deux articles intéressants expliquant comment executer des requetes Ajax sur des serveurs autres que celui d'origine.
les articles sont les suivants
http://www.xml.com/pub/a/2005/11/09/fixing-ajax-xmlhttprequest-considered-harmful.html?page=2
http://ajaxpatterns.org/On-Demand_Javascript
- bonne continuation a toute l'equipe!
Mike Wilibanks liste différentes astuces pour accélérer les requêtes SQL quand on l'utilise avec PHP.
- Connections à la demande
- Requêtes en boucle
- Sélections en fonction de besoins
- Utilisez les bons types de données
- Normalisation
- Denormalization
- Types de tables
- Les règles simples
Pour les performances, il est trop facile de masquer les nombres de requêtes en PHP. C'est à dire que placer une requête dans une boucle foreach permet de s'épargner l'écriture de nombreuses requêtes, et cela masque beaucoup de travail pour MySQL dès que la boucle est importante. C'est probablement la pierre d'achoppement la plus fréquente lorsqu'on utilise PHP avec MySQL.
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.
Si vous utilisez la barre d'extension ZendStudio dans Firefox 2 et que vous souhaitez passer à Firefox 3, Zend propose en téléchargement une nouvelle version de son plugin (la version 2.1) compatible avec ce navigateur.

Ayant cherché assez longuement une solution en tournant en rond sur le site Zend, voici une solution rapide :
Rendez vous dans la zone de téléchargement du site Zend, choisissez Studio Browser Toolbars puis Firefox Toolbar.
Si ça peut servir à d'autres ;-)
L'inénarrable Jay Pipes publie ses conférences sur le Join-Fu, l'art de maîtriser les jointures. Les deux conférences, données en Avril dernier à MySQL UC, sont toutes les deux très complètes, et pratiques. Jay suggère ne plus raisonner en boucle mais en ensembles, de réaliser des partitions verticales. C'est très long, mais vous y apprendrez sûrement comment améliorer vos requêtes SQL.
H2Lsoft, Société de services en logiciel libre, annonce la sortie de son moteur de template Php estampillé 2.9.
De nombreuses nouveautés et améliorations ont été apportées à cette version
- Amélioration des performances 35% (utilisation AdoDB lite)
- ShowRecords (gestion de la pagination automatique) supporte désormais tous les SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- 26 nouvelles méthodes
- Corrections multiple de bugs
- Compatibilité Php 4 et Php 5
Rappelons que TPLN Template PHp est un projet Open source (GPL) crée en fin 2001, ayant comme particularités:
- Simplicité d'apprentissage
- Gestion de la plus part des SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- Gestion du cache (simple et dynamique)
- Gestion automatique du contrôle des formulaires (à noter également le support des captcha)
- Plugin Mail
Cerise sur le gâteau, cette version s'accompagne d'un nouveau site internet et d'une nouvelle documentation.
Site internet => http://tpln.h2lsoft.com
Changelog Complet => http://tpln.h2lsoft.com/?mod=changelog
Exemples en ligne => http://tpln.h2lsoft.com/?mod=samples
Proposé par Laurent H
H2Lsoft, Société de services en logiciel libre, annonce la sortie de son moteur de template PHP estampillé 2.9. De nombreuses nouveautés et améliorations ont été apportées à cette version, notamment:
- Amélioration des performances 35% (utilisation AdoDB lite)
- ShowRecords (gestion de la pagination automatique) supporte désormais tous les SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- 26 nouvelles méthodes
- Corrections multiple de bugs
- Compatibilité Php 4 et Php 5
Rappelons que TPLN Template PHp est un projet Open source (GPL) crée en 2001, ayant comme particularités:
- Simplicité d'apprentissage
- Gestion de la plus part des SGBDR (MySQL, Oracle, SQL Server, Access, SQL Lite, ...)
- Gestion du cache (simple et dynamique)
- Gestion automatique du contrôle des formulaires (à noter également le support des captcha)
- Plugin Mail
Cerise sur le gâteau, cette version s'accompagne d'un nouveau site internet et d'une nouvelle documentation.
5 paquets ont été mis à jour cette semaine :
PHP_Beautifier (0 visite) : Beautifier pour PHP
DB_Table (0 visite) : Basé sur PEAR DB, avec des types de données abstraits
PHP_CompatInfo (0 visite) : Recherche les versions et extensions minimum pour exécuter un script PHP
Net_NNTP (0 visite) : Implémentation du protocole NNTP
Net_URL2 (0 visite) : Analyse d'URL
PEAR est la bibliothèque de composants PHP.
Subversion (SVN) 1.5 est disponible avec plus de 150 corrections de bugs et améliorations.
Voici une présentation a propos de son utilisation dans le cadre du développement d'application PHP

|
View
Et Tortoise SVN sort sa
version 1.5.0 par la même occasion
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.24-rc et 6.0.4.
Les mises à jour sont recommandées vers ces versions.
8 alertes de sécurité ont été émises cette semaine, concernant des applications suivantes :
Cache_Lite, Drupal, Gallery, Horde, Joomla, RoundCube Webmail, ming et vBulletin
Ce billet est une introduction au prochain billet : “Entrepreneuriat : Comment monter son entreprise ?”
Actuellement étudiant, j’ai la possibilité dans mon école d’être stagiaire en alternance pendant l’année, et à plein temps pendant l’été.
Etre stagiaire, c’est une première étape dans le monde du travail, et une des seules sources de revenus que l’on peut avoir en tant qu’étudiant.
En fonction de son avancement dans le cursus scolaire, de son expérience passée, en résumé de son “profil”, la gratification accordée au stagiaire peut varier énormément, mais reste généralement très faible comparée au temps passé dans l’entreprise et le travail réalisé (tous les stagiaires ne font pas que le café ;p)
Combien gagne un stagiaire au minimum ?
Depuis le décret du 1er février 2008, les stages de plus 3 mois consécutifs doivent être obligatoirement rémunérés. Ce décret, qui complète la loi du 31 mars 2006 pour l’égalité des chances définit le minimum légal de rémunération : “le montant horaire de la gratification due au stagiaire est fixé à 12,5 % du plafond horaire de la sécurité sociale” (21 euros en 2008), ce qui correspond à 398,13 € par mois en 2008 pour 35 heures hebdomadaires.
Je constate au sein de mon école que les revenus en tant que stagiaire des élèves les plus expérimentés peuvent monter jusqu’à 1200 euros par mois, la moyenne semblerait être de 700 euros parmi les élèves de 4ème année post bac.
Et au maximum ?
Il n’y a pas de maximum dans la rémunération d’un stagiaire. Cependant, il faut être conscient qu’à partir d’un certain montant (> 3840€ pour l’année), les revenus seront soumis à imposition :
“[Sont exonérés] les salaires perçus par les jeunes âgés de 25 ans au plus au 1er janvier 2008 en rémunération d’une activité exercée pendant ou en dehors des congés scolaires ou universitaires dans la limite annuelle de trois fois le montant mensuel du SMIC (3 840 €). L’exonération ne s’applique que sur option. Vous pouvez choisir de ne pas en bénéficier et de préserver ainsi le droit éventuel à la prime pour l’emploi.”
La problématique qui s’est posée dans mon cas est que je pouvais aussi travailler en plus de mon stage (le soir, pendant les weekend, les vacances etc…). En effet dans les métiers du web et en informatique en général, il est rapidement possible avec un peu de volonté de trouver du travail et ainsi des sources de revenus (cours, dépannage, développements web, adsense …)
Le seul statut de stagiaire ne permet pas de gagner de l’argent en dehors de l’objet pour lequel le stage est contracté ; il m’a fallut obtenir un véritable statut afin de légalement gagner de l’argent dans l’activité de développement web que je souhaitais réaliser dans mon temps libre.
La suite au prochain billet
la nouvelle version de subversion, ou encore appele SVN, vient de sortir et permet toujours d'effectuer le controle de systeme. Cette nouvelle version se trouve indispensable pour avec l'ensemble des langages mais aussi pour PHP.
Cette version a subie plus de 150 evolutions et corrections de bugs.
Parfois, on cherche des solutions très compliquées pour résoudre certains problèmes.
J'ai mis en place, il y a quelques temps, un système pour protéger un formulaire contre le spam. N'ayant pas accès au code traitant le formulaire, mais uniquement au formulaire lui même, j'ai dû trouver une astuce autre que l'utilisation de captcha. C'est habituellement ce que je mets en oeuvre pour lutter contre ce fléau.
Si on réfléchit un peu à la méthode employée par les bots spammeur, on imagine que ceux ci scrutent le code html de la page à la recherche d'un formulaire, récupèrent le nom des champs et l'adresse de validation du formulaire afin de générer automatiquement une commande POST sur cette dernière.
Une idée est de ne pas fournir une adresse de validation du formulaire correcte afin de tromper le bot. C'est cette idée que j'ai mise en oeuvre.
On place une adresse de validation bidon dans le tag <FORM> et on la corrige par javascript juste avant la soumission du formulaire.
Voici un exemple de code :
[xml]
<script type="text/javascript">
<!--
function correcturl()
{
var formobj = document.getElementById("formid");
if(formobj)
formobj.action="/vrai/adresse/de/validation/du/formulaire.php";
return true;
}
//-->
</script>
<form action="http://www.adresse.bidon.com/pour/tromper/le/bot/"
method="post" id="formid" onsubmit="return correcturl();">
Nom : <input name="nom" />
</br/>
Prénom : <input name="prenom" />
</br/>
<textarea name="commentaire" cols="35" rows="7"></textarea>
</br/>
<input type="submit" />
</form>
Certes, l'utilisation de cette méthode sur un site à fort trafique poussera les spammeurs à développer un bot spécifique au site, mais pour le site d'une petite entreprise ou d'un particulier, cela fonctionne très bien.
Suite du billet précédent.
L’entrepreneur web doit posséder un statut légal pour percevoir les sommes qu’il va retirer de son activité ; c’est le cas par exemple si vous possédez un ou plusieurs sites internet commençant à générer des revenus ou alors si vous souhaitez proposer une prestation de service sur internet.
En France, vous êtes tenus de déclarer tout vos revenus, même quand ceux-ci vous paraissent négligeables. De plus, à partir du moment où vous réalisez une prestation de service pour un tiers, vous devez être immatriculé à la chambre du commerce et des sociétés.
A ce moment là, il y a deux choix qui s’offrent à ceux qui veulent entreprendre :
- Créer une entreprise individuelle
- Créer une entreprise unipersonnelle (EURL)
Examinons rapidement les différences entre ces deux types de société.
La différence entre une entreprise individuelle et une entreprise unipersonnelle
- L’entrepreneur individuel
Dans l’entreprise individuelle, vous êtes responsable indéfiniment et personnellement des dettes professionnelles comme des dettes personnelles que vous allez contracter, car il y a confusion entre votre patrimoine personnel et celui de votre entreprise. Le risque financier est donc réel car l’entrepreneur peut se retrouver ruiné.
Cependant, la loi du 1er août 2003 pour l’initiative économique met en place un dispositif de protection de la résidence principale de l’entrepreneur individuel :
“Art. L. 526-1. - Par dérogation aux articles 2092 et 2093 du code civil, une personne physique immatriculée à un registre de publicité légale à caractère professionnel ou exerçant une activité professionnelle agricole ou indépendante peut déclarer insaisissables ses droits sur l’immeuble où est fixée sa résidence principale.”
Cela signifie que, moyennant les démarches correspondantes (voir le reste de l’article de loi), la résidence principale de l’entrepreneur sera protégée des actions des créanciers de l’entreprise.
C’est ce type de société que je détaillerai dans le prochain billet avec une présentation plus détaillée et les démarches à entreprendre pour sa création, car c’est la façon la plus simple et la moins coûteuse d’entreprendre une activité économique.
- L’EURL (société unipersonnelle)
L’EURL, qui est en fait une SARL avec un associé unique, fonctionne différemment. En effet, l’associé unique n’est plus propriétaire des biens affectés à l’entreprise, car ils constituent alors le patrimoine de la société. En conséquence, c’est la société qui est tenue des dettes liées à son activité, l’entrepreneur n’étant responsable qu’à hauteur de ses apports.
Mais contrairement à l’entreprise individuelle, son fonctionnement est plus lourd et plus couteux :
- Il faut tenir une comptabilité plus rigoureuse dont n’est pas tenu l’entrepreneur individuel (si il ne dépasse pas un certain plafond, voir le prochain billet ;))
- Il faut apporter un capital initial (même si il peut être maintenant de 1 euro) et rédiger des statuts
- L’associé unique doit cotiser aux mêmes caisses de retraite et maladie que les entrepreneurs individuels
- L’associé unique bénéficie normalement de la sauvegarde de son patrimoine personnel, mais très souvent les banques et autres créanciers continuent à prendre des garanties sur ce même patrimoine, ce qui annule alors l’avantage d’une telle structure.
Pour en savoir plus sur les différences entre ces deux sociétés, je vous invite à lire :
L’entreprise unipersonnelle à responsabilité limitée (EURL)
L’entreprise individuelle (EI)
ainsi que les pages wikipedia correspondantes (ici et là)
Dans le prochain billet, nous regarderons les démarches concrètes à effectuer pour créer une entreprise individuelle
La mise au point de votre site web pour l'ensemble des utilisateurs, est un point important.
Yahoo propose un nouveau service concernant la "Reputation Pattern" qui se trouve etre une offre participative dont vous pouvez mettre en place un type plutot qu'un autre.
Une nouvelle maniere pour acceder a un ensemble de meilleures pratiques pour vous aider a developper.
Un article sur le blog de Symfony présente brillamment la nouvelle architecture de Symfony.
Entre les lignes on devine le travail qui a été fait pour rendre les classes du framework indépendantes, ceci permettant la dissociation entre la « plateforme » et le « framework ».
Histoire d’alimenter le troll, si la version finale de Symfony tient ses promesses (pas de [...]
Article original publié sur Glagla Dot Org. Tous droits réservés.
L’architecture de Symfony 1.1
Disposer dun MCD (modèle conceptuel de données) lorsquon travaille sur une requête SQL impliquant différentes tables représente un gain de temps.
Il est en effet plus rapide de jeter un coup doeil sur un MCD afin de repérer quels sont les champs qui lient une table à une autre plutôt que denchaîner les DESC ma_table, puis repérer la clé primaire et les éventuelles clés étrangères, et rebolote sur la ou les tables de destination
La prochaine série darticles sur les index MySQL va nous amener à enchaîner quelques requêtes sur une des deux bases dexemple disponibles sur le site de MySQL : world et sakila, le prétexte est donc tout trouvé pour évoquer ici la solution que jai retenu pour obtenir le MCD de ces tables : DBDesigner 4.
Cet outil nest pas nouveau, son successeur officiel est même déjà connu, il sagit de MySQL Workbench. Celui-ci nétant pas encore disponible sous linux, nous utiliserons son ancêtre et plus particulièrement sa fonctionnalité de reverse engineering : une fois connecté à votre base, DBDesigner 4 va générer sous forme graphique vos tables, leurs descriptions, et si tout se passe bien, les relations entre vos tables.
Le client en ligne de commande MySQL dispose d'un système pour appeler des scripts externes avant d'afficher les résultats. On peut donc automatiser des mises en forme personnalisées, ou simplement noter des informations tout en traitant des données.
Le plus simple est encore le pager less, qui évite les défilements infinis de données.
pager less
SHOW innodb STATUS\G
Baron Schwartz montre aussi comment calculer la durée d'attente d'un verrou ou bien comment l'utiliser avec Maatkit pour faire un affichage en arbre. Très pratique, vraiment.
dom29399 propose trois approches pour améliorer la lisibilité du code PHP :
- Réduire la taille des conditions : les blocs de conditions qui font des centaines de lignes perdent aisément les lecteurs
- Utiliser des blocs non-PHP pour produire du code HTML sans utiliser trop de PHP : en bref, allez-y à la majorité
- Utilisez sprintf pour simplifier les requêtes SQL
Forum:
Brèves
Auteur: philippe
Écrit le: Mon, 23 Jun 2008 15:27:29 +0200
Dernier message: Wed, 07 Jan 2009 17:39:00 +0100
Le saviez-vous ? Dans symfony, il est possible de désactiver l'échappement des contenus en passant la constante ESC_RAW en dernier paramètre d'une fonction ou méthode de classe depuis une template :
<?php echo $article->getTitle(ESC_RAW) ?>
Plutôt donc que :
<?php echo $article->getRawValue()->getTitle() ?>
Ou l'infâme :
<?php echo $sf_data->getRaw('article')->getTitle() ?>
Voila, c'est tout, c'était surtout l'occasion de faire en titre le pire jeu de mot de ce blog, et de pousser le billet d'humeur sur la RATP un peu plus bas sur la home.
Ce billet intitulé ESC_RAWquerie a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.
"Cette dépêche est la suite de ma session à JavaDeus 2008, où j'ai montré comment utiliser Lucene à l'intérieur de MySQL, en utilisant une branche expérimentale, quelques procédures stockées et déclencheurs.
Comme le processus n'est pas entièrement évident, et que cette branche est très expérimentale, j'ai pensé qu'il serait utile de détailler tout cela en ligne. Il est vraiment surprenant de voir comment peu de code (en Java, en tous cas) peut vous donner un moteur de recherche en texte intégral complet et souple."
Où il est question de faire une procédure stockée en Java. Beaucoup de compilation, et au final, l'utilisation directe de Java en MySQL.
JpGraph, la librairie graphique orientée objet permettant de réaliser dynamiquement des graphiques depuis PHP, viens d'être mise à jour aussi bien en version PHP4 que PHP5.
Vous trouverez, ci-dessous, une traduction des changelogs faites par mes soins (et donc peut-être biaisé), pour consulter la version originale (et télécharger JpGraph) rendez-vous ici.
Au menu des changements pour la version 1.26 PHP4 téléchargeable ici (taille:4.5MB, md5:13bd871fb1a405ae1bbf9c02ae5a35ac):
- Nouvelle fonctionnalité:
- CR#465 - Ajout d'une option pour ajouter un texte vertical aux tableaux graphiques.
- Correction de bugs:
- PR#461 - Les graphique "roses des vent" ne gèrent pas les titre correctement.
- PR#463 - Mauvaise gestion des petites tranches.
- PR#466 - Mauvaise gestion des petites tranches dans les graphique "camembert".
- PR#000 - Suppression de la couleur du code de debug qui empêchait le fonctionnement de la couche alpha (transparence, opacité).
- PR#445 - Le code d'exemple Image::SetAntiAliasing() attend un booléen.
- PR#456 - Problème de ponctuation dans la langue allemande.
- PR#457 - Les Array avec des index non consécutifs ne sont pas gérés comme arguments de l'url pour les images utilisant CSIM.
- PR#458 - Ajout d'une vérification d'erreur supplémentaire pour des courbes cumulées.
De plus les développeurs signalent que le développement et la correction de bugs de cette branche s'arrêteront en fin d'année 2008 et que d'ici là uniquement d'éventuels bugs jugés critiques seront corrigés. Ils ajoutent aussi que le support de la librairie GD1 a été supprimé.
Pour la version 2.3.3 PHP5 téléchargeable ici (taille:4.5MB, md5:54ab2ac3dc06c608b4af47e22962baa9 ):
- Nouvelles fonctionnalités:
- CR#450 - Ajout d'une option pour spécifier la fenêtre d'ouverture pour les images utilisant CSIM.
- CR#453 - Ajout d'un style supplémentaire pour les courbes.
- CR#464 - Ajustement automatique du label de précision.
- CR#465 - Ajout d'une option pour ajouter un texte vertical aux tableaux graphiques.
- CR#000 - Ajout des drapeaux du Bangladesh et de la République de Serbie.
- CR#000 - Ajout de l'exemple combgraphex1.php à la branche 2.x.
- Correction de bugs:
- PR#250 - Débordement de tampon sur un seul octet causé par une erreur d'arrondi pour remplir les dégradés.
- PR#445 - Le code d'exemple Image::SetAntiAliasing() attend un boléen.
- PR#448 - Rustine sur un bug de PHP 4.4.7 qui affectait les graphiques graphique "camembert".
- PR#449 - L'ajout d'un texte sur un graphique qui a subi une rotation lui donne un mauvais angle.
- PR#454 - Les messages d'erreur localisés ne peuvent être vu qu'une fois.
- PR#455 - Startangle est ignoré si seulement une tranche du graphique "camembert" n'est pas égale à 0.
- PR#456 - Problème de ponctuation dans la langue allemande.
- PR#457 - Les Array avec des index non consécutifs ne sont pas gérés comme arguments de l'url pour les images utilisant CSIM.
- PR#458 - Ajout d'une vérification d'erreur supplémentaire pour des courbes cumulées.
- PR#459 - Les UPCA (un cas particulier d'EAN13) commençant par un chiffre différent de 0 seront mal encodés.
- PR#461 - Les graphique "roses des vent" ne gêrent pas les titre correctement.
- PR#463 - Mauvaise gestion des petites tranches.
- PR#466 - Mauvaise gestion des petites tranches dans les graphique "camembert".
- PR#000 - Faute de frappe dans jpgraph_table.php ',' au lieu de ';'.
- PR#000 - Initialisation des paramètres de sortie de la methode headers_sent().
- Amélioration des performances:
- Suppression d'un appel non nécessaire à StrokeDataVal pour les marqueurs sur des graphiques en ligne.
- Modification du Wu-algorithm pour une meilleure gestion des points de début et de fin.
- Réusinage (meilleure lisibilité du code) de la classe Image et ajout d'une vérification d'erreur pour l'utilisation d'anti-alias avec des lignes en pointillées.
Bien entendu les versions pro sont elles aussi mises à jour.
Bon téléchargement!
Sensio Labs, la société créatrice du framework symfony dont je vous parle souvent ici et pour laquelle je travaille, cherche à recruter un ou plusieurs développeurs PHP.
Le poste
Le profil du développeur recherché, c'est plutôt quelqu'un (ou quelqu'une, d'ailleurs) :
- ayant idéalement déjà mis en œuvre le framework symfony sans s'être fait insulter par son client à l'issu du projet,
- plutôt franchement à l'aise avec les fonctionnalités objets de php5 (y compris ses nombreux exotismes qui nous rendent fous d'amour pour ce merveilleux langage[1]),
- à l'aise avec les principaux standards du Web comme (X)(HT)ML et CSS,
- ne citant pas les travaux de Philippe Starck à l'évocation d'un design pattern,
- curieux, ayant envie d'apprendre et de progresser techniquement,
- respectueux des bonnes pratiques de développement (ou du moins comprenant l'intérêt de les mettre en oeuvre),
- autonome, mais prompt à aider les autres s'ils sont en difficultés,
- qui lit et comprend l'anglais technique (là je viens de faire fuir 24 personnes, j'assume),
Dans les nice-to-have features :
- la connaissance d'un autre langage de programmation orienté objet est un gros plus (l'équivalent d'un bonus 1D30 + 10, pour donner une idées aux nerds),
- même chose pour la connaissance de JavaScript et d'un ou plusieurs frameworks dans ce langage,
- si capacités en gestion de projet, on vous offre un apéritif gratuit offert par la maison,
- l'acceptation d'une géolocalisation professionnelle sur Clichy (Hauts-de-Seine) est impérative,
- ah, et primordial également, posséder une importante capacité de résistance aux calembours foireux est fortement recommandé (d'ailleurs, le poste d'émetteur de ces derniers est actuellement occupé).

Bref, si vous vous reconnaissez complètement (ou fortement, voire partiellement) n'hésitez pas à me contacter, par le biais du formulaire de contact du blog ou, si vous avez peur que je trafique votre CV parce qu'il est mieux que le mien, directement sur celui de SensioLabs.
Post-scriptum
Je tiens à publiquement m'excuser auprès de Dieu, aka Marcel Gotlib, pour avoir détourné l'image de quelques-uns de ses personnages à de pures fins de recrutement éhontées. Pour m'excuser je vais relire l'intégrale de la Rubrique à Brac et m'adresser en consultation au professeur Burp, tiens.
Ce billet intitulé Symfotaf a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.
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.
Stefan Priebsch relate son expérience en TDD : Test Driven Developement. En fait, la progression dans l'utilisation de TDD est la partie la plus intéressante de l'article. Il commence par ajouter des tests sur un CMS existant. La conception se fait au fil de l'eau, et au bout de quelques tests, il identifie que ce qu'il a monté est trop complexe. Il jette alors son implémentation mais conserve les tests!
Durant la première étape, l'écriture des test a permis de mieux cerner les attentes, et de mettre sur papier (sic) différentes utilisations du CMS. A partir de là, les objectifs du CMS deviennent beaucoup plus clairs et la conception se fait simplement. C'est probablement là que l'on gagne le plus à utiliser la TDD.
3 paquets ont été mis à jour cette semaine :
svn (0 visite) : Interface avec le client Subversion
oci8 (0 visite) : fonctions OCI8
sqlite3 (0 visite) : sqlite 3
PECL est la bibliothèque d'extensions C de PHP.
PHP Reports est une bibliothèque qui aide à la génération de formulaires de rapports. Elle découpe la production des rapports en trois couches : les données, la page et les groupes. Cela permet de maîtriser les différents regroupements et aspects d'un rapport, pour produire rapidement un fichier HTML sans reinventer la roue à chaque fois. Sans être une révolution, cette petite bibliothèque peut se révéler utile à bien des moments.
Les index n'ont plus de secret pour dbnewz, et il n'en n'auront plus pour vous non plus quand vous aurez lu ce long dossier. En plus du classique EXPLAIN qui explique l'utilisation des index par les requêtes, vous pourrez découvrir PROCEDURE ANALYSE(), qui optimise le type de données pour votre table.
Index simples, index multiple, choix des index : tout y passe. Il ne reste que la structure des index et leurs performances, à voir dans les prochains articles.
En Irlande est organise un rendez-vous mensuel, prevu le dernier mercredi de chaque mois... Il s'agit d'un rendez-vous a le pas manquer pour les personnes qui se trouve presente sur Dublin, car il existe un groupe communautaire autour de PHP... sous le Nom de PHP Irish (PHP Ireland en francais).
Le rendez-vous du mois de juin, ne fut pas comme les autres car le Tresorier de AFUP se trouvait present pendant quelques heures et en a profiter pour les rencontrer.
Comme prévu on se retrouvera demain à Mons.
19h Grand-Place au petit singe, sinon au comte de Flandre.
Voilà ma tronche du moment pour ceux que ca aiderait à nous retrouver
PHP et MySQL ne font l'objet d'aucune alerte de sécurité dans leurs versions courantes :
PHP 5.2.6 et 4.4.8; MySQL 5.0.51 (communauté) , 5.1.25 et 6.0.5.
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, phpMyAdmin et vBulletin
MySQL 6.0.5, 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.0.4 apporte 2 correctifs de sécurité, portant sur les tables MyISAM et la version Microsoft. Un total de 400 bugs ont été corrigés dans cette nouvelle version.
Changements incompatibles :
- Les tables de logs sont maintenant de type FILE, et non plus TABLE.
- La bibliothèque de conversion chaîne <-> nombre a été changée
- MySQL Cluster est doit être téléchargé séparément
- NDB_LE_MemoryUsage.page_size_kb est renommé page_size_bytes
- Une colonne ROUTINE_TYPE a été ajouté dans information_schema.PARAMETER
Corrections :
- Sécurité : Correction liées aux tables MyISAM et aux options DATA DIRECTORY
et INDEX DIRECTORY.
- Correction sur les versions Microsoft Windows Vista et Server 2008.
- Correction des AUTO_INCREMENT du NDB
- Correction d'un bug de réplication lors des crash sur UPDATE
- Il n'est plus possible de créer de fichiers de plus de 4 Go sur les systèmes 32 bits
- FRAC_SECOND n'est plus un synonyme de MICROSECOND
- InnoDB affiche l'espace libre dans son status.
- Changement de traitement pour les espaces finaux
- Correction du déclenchement de TRIGGER AFTER UPDATE
- Amélioration de la gestion du réseau par la réplication
Me voilà déjà de retour, aigri...
J'ai attendu seul pendant une heure, puis je me suis barré.
Depuis 6 ans maintenant que j'essaye d'en organiser, le constat reste le même, si je n'amène pas mes collègues (qui viennent de moins en moins souvent puisqu'ils ont déjà à me supporter la semaine), il n'y a que 2 ou 3 curieux qui se pointent, cette fois ci même pas un.
Un peu blasé du larvisme de la communauté des utilisateurs de php en Belgique, J'hésite à annuler le reste des aperoPHP Belges ... J'irais à Lille où ca bouge bien.
3 paquets ont été mis à jour cette semaine :
PEAR est la bibliothèque de composants PHP.
La semaine dernière se déroulait l'eZ Conference 2008 à Skien en Norvège autour du CMS Open source eZ Publish. Cette année, la conférence se déroulait en même temps que l'Open Nordic.
Beaucoup de nouveautés et pas mal de retours intéressants sur de gros projets ont été présentés cette année à l'eZ Conférence 2008. D'un point de vue produit, eZ Systems dirige ses développements sur 2 axes :
- amélioration de ce qu'on peut appeler le socle eZ Publish (correction des bugs, amélioration des performances, ...)
- amélioration de l'expérience utilisateurs avec des nouveaux produits autour d'eZ Publish (eZ Flow, nouvel Online Editor, ...)
La grosse nouvelle est la mise à jour majeure de la roadmap d'eZ Publish par rapport au dernier developer day et les décalages de planning qui vont avec ;-)
La roadmap eZ Publish
La grosse nouveauté concerne le développement des nouvelles versions d'eZ Publish. En effet celui ci va se poursuivre sur 2 branches distinctes :
- la branche 4.x
- le projet V (la branche 5.x)
La branche 4.x se focalisera en plus des corrections de bug, sur des améliorations de performances avec la base de code actuelle. Cette version conservera en particulier le moteur de template actuel. Le but de cette branche est de conserver la compatibilité ascendante. Il semble que le principal soucis au niveau de l'intégration du composant Template des eZ Components soit le système d'override.
La branche 5.x (project V) vise à réécrire quasi complètement le noyau sous forme de micro kernel avec un maximum de fonctionnalité sous forme d'extensions. Il sera par exemple possible d'écrire son propre moteur de stockage pour par exemple se passer du versionning ou pour gérer de manière fine les données stockées dans eZ Publish.
À plus court terme, la sortie de la 4.1 est une question de semaines, elle comprendra :
Pour ces derniers bugs, le dernier obstacle est l'écriture d'un script pour tenter de récupérer un maximum de données.
Les versions 4.2 et suivantes vont voir apparaître les fonctionnalités suivantes :
- Les object states permettant de faire des processus complexes de publication plus facilement.
- Support de IIS et MS SQL pour l'hébergement avec PHP en fastcgi avec comme but 80 à 90% des performances d'un serveur Linux
- Des plugins OpenOffice et MS Word permettant d'éditer des objets directement depuis ces traitements de texte
- L'intégration d'un CSS Editor.
Les démonstrations de ces deux derniers produits étaient assez impressionnantes. Les plugins des traitements de texte permettent de parcourir et d'éditer directement depuis le logiciel les objets du site et de les sauvegarder sans passer par un export puis un réimport dans le backoffice. Le CSS Editor permet lui d'éditer la feuille de style directement depuis son navigateur. Ce produit est déjà en fonctionnement sur une usine à sites où les administrateurs de chaque site ont la possibilité de changer légèrement la mise en page (couleurs, images de fond, police, ...)
Quelques projets intéressants
eZ Publish est de plus en plus employé pour de gros sites que ce soit en terme d'audience, de volumétrie ou de technicité. Par exemple eZ Publish est utilisé sur Sport24.com (site que je connais bien :)), Europe1.fr ou Car and Driver sites à fort trafic où sont utilisées différentes techniques pour tenir la charge comme le mode cluster, de la prégénération statiques avec des SSI ou les ESI avec Akamaï (ou bientôt Varnish). En terme de volumétrie, Première remporte probablement la palme avec 700 000 objets de contenus. En terme de technicité nous avons pu assister à la présentation d'un projet de banque d'images avancée pour SanomaWSOY mettant en oeuvre eZ Publish avec eZ Find pour l'indexation de 400 000 images et de leurs meta données XMP.
Traditionnellement, on taille une application Web pour fonctionner à 70% des pics de trafic estimé. Pourtant, Theo Schlossnagle observe : "au moins huit fois durant le mois passé, nous avons absorbé des augmentations soudaines allant de 100% à 1000% du trafic."
Dans son blogue, il dissèque les différents pics qui surviennent, que l'on passe sur le New York Times ou sur Digg, avec des effets variés. Dans tous les cas, il faut pouvoir réagir en moins d'une minute à ces pics : il est donc peu réaliste d'envisager d'installer des machines supplémentaires, même sur une grille de calcul. Et il n'est toujours pas envisageable d'avoir une architecture taillé pour les pics, quand elle ne sert que 8 fois par mois.
Beaucoup d'observations intéressantes dans cet article, mais peu de solutions précises pour ce domaine en pleine maturation qu'est la montée en charge des applications.
Utiliser des valeurs par défaut est une bonne pratique de développement, notamment en PHP puisque les variables ne sont pas déclarées. On procéde généralement avec une condition :
if (isset($_GET['x'])) { $x = validation($_GET['x']); } else { $_GET["x"] = 0; }
Daniel Arnolds propose une autre approche : en ajoutant à $_GET le tableau de valeur par défaut, on peut attribuer les variables qui manquent, avec leur valeur par défaut. Cette approche est plus compacte que la précédente, mais souffre du manque de validation.
$args = $_GET + array('x'=>0);
Phar est un format de fichier d'archive pour PHP : (PHp ARchives). Il permet de stocker des applications PHP complètes dans un seul fichier, et de les exécuter de manière indépendantes. Toutes les sources sont rangées dans un seul document organisé comme un système de fichiers, et peuvent être signées, chiffrées et compressées. Phar est aussi compatible avec APC, et donne de bonnes accélérations.
Regardez les exemples de fonctionnement chez Derick et Sebastian pour comprendre la simplicité (apparente) du concept. Et si le coeur vous en dit, on cherche des tests de vitesse!
"Lorsque vous utilisez MySQL en mode batch, vous aurez souvent besoin d'utiliser les commandes en ligne UNIX en collaboration avec des requêtes SQL. Ce script de démonstration vous montre comment faire cela."
Amit K. Saha présente ici un truc pratique pour tout faire dans un script Shell, sans passer par un langage de programmation complémentaire.
Arjen Lentz propose la requête suivante pour détecter les index qui ne servent à rien dans MySQL :
SELECT s.table_name,
concat(s.index_name,'(',group_concat(s.column_name order by s.seq_in_index),')') as idx,
GROUP_CONCAT(s.cardinality ORDER BY s.seq_in_index) AS card,
t.table_rows
FROM information_schema.tables t
JOIN information_schema.statistics s USING (table_schema,table_name)
WHERE t.table_schema='dbname'
AND t.table_rows > 1000
AND s.non_unique
GROUP BY s.table_name,s.index_name
HAVING (card + 0) < (t.table_rows / 3);
La requête utilise la base information_schema (MySQL 5.0 et supérieur), pour repérer les index dont la cardinalité est inférieure à 30% : c'est le niveau à partir duquel MySQL va décider que l'index est utile, et en dessous de ce niveau, MySQL décidera d'ignorer l'index et de tout analyser. Cela revient à décider de tout ranger quand le désordre est tellement grand que corriger les erreurs sera beaucoup plus long encore.
Le groupe 451 CAOS Theory a organisé un tournoi de l'Open Source en se basant sur les mêmes règles de sélection que pour le championnat de football qui vient de se conclure, mais en faisant s'affronter sur le terrain de l'Open Source : contributions, éditeurs, services, infrastrcture, etc.
Cette finale improbable accueillait l'Allemagne et la France, et après un match très sérré, c'est la France qui l'emporte.
Outre un brin de chauvinisme sportif, vous pourrez retrouver une fiche intéressante sur la France et beaucoup d'autres pays européens sur le blogue de 451 CAOS.
Nous venons de releaser symfony 1.1, le framework qui blanchit les dents et rafraîchit l'haleine.
C'est une étape importante puisque l'architecture même du framework a été entièrement repensée, pour être notamment plus découplée, et favoriser ainsi l'extensibilité et la configurabilité. Voici les autres améliorations phares de cette nouvelle version :
- Le nouveau framework de formulaires, entièrement orienté objet, permet une réutilisation maximale des éléments et en garantit la sécurité de façon transparente,
- Le système de gestion de tâches en ligne de commande est une grosse tuerie, il vous permet de créer des scripts en ligne de commande avec gestion de l'aide, des arguments et des options, le tout avec une sortie en couleur au besoin !
- Le parser YAML a été réécrit from scratch et propose maintenant des messages d'erreurs contextualisés, bien utile à l'heure du débogage,
- La gestion des formats web permet à votre application de fournir une réponse et un format différents en fonction du type de requête entrante ; concrètement, vous gardez le même contrôleur mais vous proposez des vues adaptées dans le format qui va bien (html, xml, json, etc.)

- La gestion des plugins a été entièrement revue et propose maintenant une totalement API compatible avec le standard PEAR, et gère notamment les dépendances,
- La couche ORM Propel, toujours en version 1.2, est maintenant proposée sous la forme d'un plugin (activé par défaut), permettant ainsi plus facilement d'utiliser Doctrine ou Propel 1.3 si vous préferez,
- Le routing a été grandement amélioré tant en performances qu'en extensibilité et souplesse de configuration,
- La compatibilité avec symfony 1.0 est assurée grâce au plugin sfCompat10, fourni par défaut et activable en une ligne de configuration,
- Enfin, plus de 8500 tests unitaires et fonctionnels garantissent la stabilité de l'API et préviennent de l'apparition de régressions.
Voila, l'accouchement fut un peu long mais le bébé est là, rose et bien portant. Et il n'attend plus que vous pour jouer avec lui 
Ce billet intitulé Symfony 1.1 est dans les bacs a été rédigé par Nicolas Perriault et publié sur le blog Prendre un Café sous licence Creative Commons BY-NC-SA.
Après 4 versions bêta et deux releases candidates, l'équipe de Sensio Labs nous a dévoilé aujourd'hui la version stable du framework open-source PHP 5 Symfony 1.1. Cette nouvelle mouture du framework apporte tout un tas de nouvelles fonctionnalités. Par exemple : Une toute nouvelle...
PHP 5.3 arrive avec le support des espaces de noms, et cela implique une partie de réécriture des noms de classes pour utiliser la nouvelle syntaxe.
<?php
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
// devient
use Zend::Controller::Action;
$viewRenderer = HelperBroker::getStaticHelper('viewRenderer');
?>
En pratique, il n'est pas possible de découper les noms de classes aussi facilement, car certains mots courants, comme abstract ou interface, sont aussi des mots réservés. Matthew O'phinney propose donc de préfixer les abstractions par a, et les interfaces par i. L'autoloading d'exception est aussi une autre source de problèmes. Lisez l'article de Matthew et les discussions qui s'ensuivent.
Notez que l'ancienne syntaxe est toujours active donc il n'est pas obligé de passer aux espaces de noms, comme on peut plus ou moins écrire du code PHP 4 en PHP 5.
Damien Pobel résume la conférence eZ 2008 et l'Open Nordic, qui se sont tenus juste avant l'été (jusqu'au 21 juin), à Skien, Norvège. Il reprend la roadmap d'eZ CMS, couvrant les versions 4.1 (le nouvel éditeur en en ligne et le support d'Oracle), la 4.2 (plug-in pour OpenOffice, le support de MSSQL et IIS), ainsi que la version 5 et son micro-kernel.
Les tables de décisions rassemblent la logique métier dans un tableau, simple à lire et à comprendre. "Les tables de décisions, pour moi [Jonathan], prennent tout leur sens dans le fait que leur logique métier est aisée à comprendre, et peut être facilement vérifiée."
Jonathan suit alors son idée de stocker de telles tables en base de données, avec la possibilité de les traduire en code (PHP ou autre) facilement. Cela redonne la main aux utilisateurs pour établir leurs processus de fonctionnement. L'article ne va pas aussi loin, mais c'est déjà un bon début.