manque de possibilité d'execution sur certaine url

Petit nouveau ! | 3 Messages

09 janv. 2010, 08:40

Bonjour

Sur une discution sur developpez.com concernant asp.net vs php http://www.developpez.net/forums/d7786- ... ost4890301. un utilisateur à poster que ce qui manque en php est la possibilité d'executer du code PHP pour certaines URL (des HttpModule ou HttpHandler en .NET ou des UrlFilter en Java).
est ce que correcte ?(j'ai demandé sur developpez.com mais j'ai pas eu de reponse )

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 janv. 2010, 13:35

Bonjour et bienvenue sur PHPfrance,

Je ne comprends pas ta question, qu'entends-tu par "executer du code PHP pour certaines URL"? Aurais tu un exemple concret de ce qui serait possible en Java ou .Net et que tu n'arrives pas à effectuer en PHP?
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

09 janv. 2010, 21:06

HttpModule :

http://msdn.microsoft.com/fr-fr/library ... 71%29.aspx

Guide du développeur .NET Framework
Exemple de module HttpModule personnalisé

Le module personnalisé suivant retourne simplement un message de page Web au début de toute demande HTTP et un second message une fois que la demande a été traitée. La fonction Init ci-dessous inscrit des gestionnaires d'événements pour deux événements HttpApplication, à savoir BeginRequest et EndRequest. Chaque gestionnaire est écrit en tant que méthode privée du module. Lorsque les événements inscrits sont déclenchés, ASP.NET appelle la méthode de gestionnaire appropriée, qui écrit une page Web et retourne.
HttpHandler :

http://humann.developpez.com/httphandler/
I. Définitions
Un httphandler est une classe qui répond à une requête http alors qu'habituellement, lorsque vous consultez un site asp.net, c'est un page aspx qui est demandé au serveur.

II. Petite histoire du protocole http et de l'html
Prenons l'exemple d'une image. Dans le code html, chaque balise image a un attribut src, qui correspond à l'url où se trouve l'image. Donc lorsque le navigateur reçoit une page html qui contient des balises images, il fait une nouvelle requête vers le serveur en lui demandant l'image correspondante. Or dans le cas où une image est stockée en base de données, on est bien embêté. C'est pour cela (entre autre) que l'httphandler existe.

Eléphant du PHP | 63 Messages

10 janv. 2010, 00:05

Bonsoir jcpan, ton affirmation est à moitié correcte:
  • Non, PHP ne peut pas faire nativement l'équivalent des HttpModule
  • Oui, PHP peut imiter les HttpModule avec un peu de code
Pour ce faire il suffit d'écouter les requêtes HTTP avec un URL Rewriting correspondant à un filtre précis. Pour reprendre l'exemple utilisé sur Developpez.net amené ici par notre inconnu, le filtre ressemblerait grossièrement à celui-ci : Image.axd?img=(.*)$. Une fois la requête interceptée par un de nos scripts PHP, il suffit d'effectuer le traitement voulu (ici la création d'un thumbnail).

Ce principe est à peu prêt celui utilisé par les nouveaux frameworks MVC : l'interprétation de la requête HTTP afin de desservir des ressources virtuelles.