Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

[TechDays 2007] PHP sur Windows / Projet Phalanger

| 6 Commentaires

La session « PHP sur  » était décomposée en 3 grandes parties :

  • PHP et IIS : FastCGI
  • PHP et Microsoft Ajax
  • PHP sur la plateforme .NET : Projet Phalanger

Réaction à propos de la session a proprement dit :

Lorsqu’on annonce « Session sur PHP et Windows », ça serait sympa de nous éviter le discours publicommerciale de Altas Microsoft Ajax Libary, et par la même occasion sacrifier le temps initialement consacré au projet Phalanger.

PHP et IIS : FastCGI

Rappel :

Actuellement, PHP pour les serveurs Windows peut fonctionner de 2 manières différentes, le mode ISAPI et le mode CGI. Microsoft et Zend ont récemment annoncé une collaboration technique, dont la presse informatique a fait écho, ayant pour objectif d’améliorer les performances de PHP sur les serveurs Windows.

Jusque la rien d’étonnant :)

Tout le monde connait les performances actuelles de PHP sur Windows… (très très mauvaise)

Le fruit de cette collaboration est la création d’un module FastCGI pour PHP/IIS. (FastCGI est une technologie permettant la communication entre un serveur et un logiciel indépendant.)

Quelle est la différence avec CGI ? FastCGI utilise une seule exécution pour traiter toutes les requêtes, tandis que CGI exécute un nouveau programme à chaque requête. (pour aller plus loin avec FastCGI, consulter l’article de mon ami wordpressienfr Xavier Borderie sur le JDN)

Je vous laisse imaginer le gain de performances. (en fait non, il y a un graphe qui suit…) (étant donné que les graphes du blog IIS ne sont pas dispo, j’ai pondu un graphe en 3 clics avec Office 2007, l’unité est en requêtes / secondes)

performancesphpwindowsiisfastcgi

Ce module est compatible avec IIS5.1 (), IIS6 (Windows 2003 Serveur) et IIS7 qui sortira avec Windows Serveur : Codename « Longhorn ».

FastCGI apporte un gain de , mais pas seulement, il améliore également la stabilité, et la compatibilité avec les extensions PHP non « Thread Safe » (c’est à dire beaucoup…).

Ce module n’est pas encore finalisé, mais il est possible de le télécharger sur le site IIS.net pour des fins de test, il est actuellement en technical preview 2.

Plus d’informations sur IIS.net

PHP et Microsoft Ajax

Cette partie, été pour moi, un hors sujet total, vu qu’on a eu droit à une grosse présentation de Microsoft Ajax Libary, et 2-3 remarques liés à PHP.

Donc en bref.

  • Atlas / Microsoft Ajax Library (Atlas étant le nom de code de )
  • Framework JS proche du .NET
  • Compatible tout navigateur
  • Inclus des librairies de programmation riche.
  • Actuellement disponible en RTM
  • Les contrôles serveur sont non compatibles
  • On n’utilise pas SOAP mais de JSON (plus compact, moins verbeux)
  • Utilisation 10% du coté client.
  • Découper-en en 5 fichiers.
    • MicrosoftAjax.js : Framework + Noyau
    • PreviewScript.js => BCL, Contrôle, XML – SCRIPT
    • PreviewDragDrop.js (tout est dans le nom)
    • PreviewGlitz.js : Animation, Opacité, etc.
    • BCL
  • Altas, apporte la notion objet, namespace, classe, héritage, interface, type énuméré. Les fonctions gloables, create, find, get, addHandler, RemoveHandler, debug.tracr
  • Il existe un projet couplant PHP à Microsoft Ajax Library : https://www.codeplex.com/phpmsajax (intégration PHP / MS Ajax)
  • JSON intégré en natif dans PHP 5.2
  • Utilisation possible des extenders.
  • Notion de binding présent dans Microsoft Ajax Library . (concept permettant de lier un élément X à un autre élément, peu importe le type)

Projet : Phalanger

Cette partie, surement la plus attendue des 3, et illogiquement bâclé, faute de temps…, était la présentation du projet Phalanger.

Phalanger est à l’origine un projet étudiant, il est disponible sous licence MS-PL (BSD Like en fait)

Mais au fait ? C’est quoi Phalanger ?

Phalanger est un compilateur PHP pour la plate-forme Microsoft .NET.

Petit rappel, la plateforme Microsoft .NET fonctionne de la manière suivante, les programmeurs travaillent en C# ou VB.net (sans oublie J#), compile leur application, générant ainsi un code IL, et plus précisément MSIL (Microsoft Intermediate Language), code intermédiaire avant l’exécution par la machine.

Phalanger permet donc d’inclure PHP dans les langages de développement de la plateforme .NET.

  • La version 1 permettait juste l’exécution d’application PHP sous .NET.
  • La version 2 va plus loin, et promet une réelle interopérabilité avec la plateforme .NET, le support de l’ASP.NET, la réimplémentation des classes et modules PHP, la réalisation d’application winform.

La beta 3 de Phalanger 2, ajoute l’intégration à Visual Studio 2005.

Christophe Lauer, un des SPEAKERS de cette session, a réalisé une démonstration d’un outil PHP relativement connu, … eh oui ! (on est partout :D) et mis à part un temps de génération plus important au 1er affichage, le blog est bien fonctionnel.

J’avoue avoir du mal à comprendre, comment le programme compilé peut interagir avec , tout en restant dynamique, et compilé… enfin bref :)

Je vais approfondir le sujet ;)

6 Commentaires

Laisser un commentaire

Champs Requis *.