mysqlnd, un driver MySQL optimisé pour PHP

    19:44 4 12 2007

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

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

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

Mais alors que va apporter cette nouveauté?

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

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

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

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

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

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



PHP 6.0-dev et MySQL 5.1.22rc pour WampServer

    00:05 3 12 2007

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

Vous pourrez le trouver sur cette page :

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

Bons tests ;-)



Les locaux d’Anaska pris d’assaut!

    18:33 1 12 2007

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

invasion d’elephpants

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



WampServer 2 est sorti!

    12:19 21 11 2007

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

Voici le communiqué officiel :

Nouvelle version majeur de WampServer 2

La plate forme professionnelle Open Source pour travailler avec PHP MySQL

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

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

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

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

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

Une petite révolution pour les développeurs

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

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

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

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

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

Cas d’utilisation : Installer PHP MySQL sous Windows

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

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

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

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

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

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

WampServer en chiffres

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

WampServer est publié sous licence GPL



Premier test de WampServer 2 par Cyril

    10:34 16 11 2007

L’article se trouve sur son blog :

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



27 versions différentes de PHP, 17 de Apache et 6 de MySQL sur la même plateforme

    17:41 13 11 2007

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

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

Les versions disponibles seront :

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

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

A suivre…



PHP4, nostalgie quand tu nous tiens!

    10:50 7 11 2007

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

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

Exemple :

screenshot pop php4

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

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



Del.icio.us migre vers PHP et le Framework Symfony

    14:07 19 10 2007

C’est pas moi qui le dit :

http://www.symfony-project.com/blog/2007/10/02/delicious-preview-built-with-symfony



Everybody wants to rule the world…

    18:27 12 10 2007

Microsoft et Zend collaborent sur une implémentation PHP d’InfoCard :

http://www.lemondeinformatique.fr/actualites/lire-microsoft-et-zend-collaborent-sur-une-implementation-php-d-infocard-24268.html



Ouverture des inscriptions pour le Forum PHP 2007

    22:04 8 10 2007

Extrait du communiqué officiel (un peu personnalisé)

La grand messe annuelle des utilisateurs de PHP réunira de nombreuses personnalités du monde PHP : le père du PHP Rasmus Lerdorf, Andrei Zmievski, développeur du langage PHP et expert unicode, Derick Rethans, créateur de Xdebug et architecte à eZ Systems, ou encore … moi ;-)

Organisé à Paris, les 21 et 22 novembre prochains par l’Association Française des Utilisateurs de PHP (www.afup.org), le Forum PHP 2007 propose 2 journées de conférences, orientées, fonctionnel et technique. Une occasion unique d’échanges avec l’ensemble de la communauté PHP française, les meilleurs spécialistes, et les entreprises utilisatrices.

Informations et inscriptions : http://www.afup.org/pages/forumphp2007/