[PHP5] URL rewriting

URL rewriting [PHP5] - PHP - Programmation

Marsh Posté le 02-11-2009 à 18:55:51    

Bonjour,
 
Je cherche une classe pour gérer les URLs ou comment faire pour que le passage de paramètre d'un script à l'autre sans avoir une barre de 2 Km de long ?
Je n'ai pas beaucoup de variable à passer, mais je cherche  un truc comme dans Symfony, pour avoir des URLs propre et une meilleur homogénéité.
 
Merci :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 02-11-2009 à 18:55:51   

Reply

Marsh Posté le 02-11-2009 à 22:39:19    

L'URL rewriting ça se passe au niveau d'Apache, pas de PHP.


---------------
Fresh
Reply

Marsh Posté le 03-11-2009 à 11:47:09    

budlite a écrit :

L'URL rewriting ça se passe au niveau d'Apache, pas de PHP.


Pas forcément.
 
 
Bon sinon comme tu le dis si bien, plusieurs frameworks intègrent des mécanismes de réécriture d'url (par exemple Symfony, CakePHP aussi je crois) mais je n'en ai jamais vu en lib indépendante.
 
Le mieux est peut-être d'utiliser un framework non ? Tu y gagnerais sur pas mal d'autres domaines en plus avec les nombreuses fonctionnalités

Reply

Marsh Posté le 03-11-2009 à 11:47:59    

Tirkyth a écrit :


Pas forcément.


Si, forcément. Si tu fais rien coté serveur HTTP il se passera pas grand chose.[:dawao]

Message cité 1 fois
Message édité par skeye le 03-11-2009 à 11:48:13

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2009 à 11:52:07    

skeye a écrit :


Si, forcément. Si tu fais rien coté serveur HTTP il se passera pas grand chose.[:dawao]


Il y a autre chose que les rewrite rules dans les htaccess de nos jours.

Reply

Marsh Posté le 03-11-2009 à 11:53:31    

Tirkyth a écrit :


Il y a autre chose que les rewrite rules dans les htaccess de nos jours.


...et sans ça il n'y a rien qui marche, pourtant.
Ton framework il va avoir besoin d'une rewrite rule de toutes les url vers l'index sinon tu vas avoir des http 404 partout.[:skeye]

Message cité 1 fois
Message édité par skeye le 03-11-2009 à 11:53:43

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2009 à 11:59:12    

skeye a écrit :


...et sans ça il n'y a rien qui marche, pourtant.
Ton framework il va avoir besoin d'une rewrite rule de toutes les url vers l'index sinon tu vas avoir des http 404 partout.[:skeye]


Non mais d'accord mais ça répond pas du tout à la demande du post initial.  [:prozac]  
Il veut un système comme dans Symfony, donc un truc ou tu fais pas tes rewrite rules dans ton htaccess.
Ca sert à rien de lui dire

Citation :


L'URL rewriting ça se passe au niveau d'Apache, pas de PHP.


Ça ne l'aide en rien, et ça dit surtout "T'as pas le choix, faut faire au niveau d'apache".
 
Alors oui, si tu veux, d'accord, il va en effet avoir besoin d'une règle pour rediriger toutes ses requêtes vers l'index d'accord. Mais la réponse que j'ai quoté ci-dessus, elle veut pas du tout dire ça.

Reply

Marsh Posté le 03-11-2009 à 12:05:37    

Tiens je viens de tomber sur ça, je sais pas si ça pourrait te convenir (j'ai pas regardé en détails non plus):
 
http://pear.php.net/package/Net_URL_Mapper

Reply

Marsh Posté le 03-11-2009 à 12:05:56    

Tirkyth a écrit :


Ca sert à rien de lui dire

Citation :


L'URL rewriting ça se passe au niveau d'Apache, pas de PHP.



Je suis tout à fait d'accord, la réponse était incomplète. Mais la tienne était également incorrecte, d'où mon intervention.
...m'enfin on encule les mouches là hein. :o
Une option à regarder éventuellement s'il veut pas installer un framework complet c'est ce que fait zend, on doit pouvoir réutiliser la couche Zend_Application sans tout le reste...mais ce sera pas fait en 5 minutes non plus je pense.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 03-11-2009 à 12:12:24    

skeye a écrit :


Je suis tout à fait d'accord, la réponse était incomplète. Mais la tienne était également incorrecte, d'où mon intervention.
...m'enfin on encule les mouches là hein. :o


Certes  :o

 

Et sinon pour compléter ma réponse précédente, si le NEt URL Mapper ne convient pas, tu as un post ici de quelqu'un qui a développé son propre truc vraiment light et qui explique comment l'utiliser, je ne sais pas si ça répondra à tes besoins mais tu peux toujours jeter un oeil :
http://beta.ferdianto.com/2009/05/ [...] ng-library

Message cité 1 fois
Message édité par Tirkyth le 03-11-2009 à 12:12:35
Reply

Marsh Posté le 03-11-2009 à 12:12:24   

Reply

Marsh Posté le 03-11-2009 à 20:00:23    

Déjà, merci pour toutes ces réponses :jap:
ensuite, dans l'ordre :
-  je sais que ca se passe dans Apache, mais pour gérer les URL dans les scripts il devrait aussi existait une classe en PHP pour centraliser ça.
- Utiliser un frameworks non, ça me demande le réécriture de mon application + apprentissage du dit frameworks , beaucoup trop long, je n'ai pas le temps de me former, mais je connais la théorie de Symfony et c'est pour ça que je cherche une classe.
-Pour le reste, je regarde, merci
 
Si vous avez d'autre truc, je reste preneur :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 04-11-2009 à 12:39:29    

Tirkyth a écrit :


Certes  :o  
 
Et sinon pour compléter ma réponse précédente, si le NEt URL Mapper ne convient pas, tu as un post ici de quelqu'un qui a développé son propre truc vraiment light et qui explique comment l'utiliser, je ne sais pas si ça répondra à tes besoins mais tu peux toujours jeter un oeil :
http://beta.ferdianto.com/2009/05/ [...] ng-library


 
Il faut voir, le principe peut être intéressant, je vais creuser, on verra...
Cependant le topic reste ouvert a toute proposition :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 04-11-2009 à 20:06:09    

Tirkyth a écrit :


Pas forcément.
 
 
Bon sinon comme tu le dis si bien, plusieurs frameworks intègrent des mécanismes de réécriture d'url (par exemple Symfony, CakePHP aussi je crois) mais je n'en ai jamais vu en lib indépendante.
 
Le mieux est peut-être d'utiliser un framework non ? Tu y gagnerais sur pas mal d'autres domaines en plus avec les nombreuses fonctionnalités


OK autant pour moi je pensais que la bonne pratique était de faire l'url rewriting directement sur Apache.
 
En fait j'ai un peu de mal à voir comment ça peut marcher si tu veux que l'adresse www.site.com/article/view/mon-titre-pour-le-seo/ redirige vers une autre page, si tu ne fais rien au niveau d'apache :??: Je comprends qu'on puisse parser l'url courante et faire sa logique en php/java etc derrière pour simuler un url rewriting, mais par défaut apache va rediriger vers le dossier /article/view/mon-titre-pour-le-seo/, nan ?


---------------
Fresh
Reply

Marsh Posté le 04-11-2009 à 20:55:35    

budlite a écrit :


OK autant pour moi je pensais que la bonne pratique était de faire l'url rewriting directement sur Apache.
 
En fait j'ai un peu de mal à voir comment ça peut marcher si tu veux que l'adresse www.site.com/article/view/mon-titre-pour-le-seo/ redirige vers une autre page, si tu ne fais rien au niveau d'apache :??: Je comprends qu'on puisse parser l'url courante et faire sa logique en php/java etc derrière pour simuler un url rewriting, mais par défaut apache va rediriger vers le dossier /article/view/mon-titre-pour-le-seo/, nan ?


En fait comme expliqué plus haut avec skeye, tu vas avoir grosso-modo une seule et unique règle qui va dire à Apache que peut importe l'url demandée, tu la redirige vers l'index par exemple.
Et c'est cet index qui va être chargé de parser l'url et de savoir quelle partie de l'application il doit charger etc.
 
Si tu veux te renseigner un peu plus tu peux faire une recherche sur "Design Pattern Front Controller".
 
Ici tu trouveras le fonctionnement pour le framework Symfony par exemple : http://www.symfony-project.org/job [...] rine/en/05
Si tu as un peu de temps pour lire, tu verras que ça permet des trucs vraiments pratiques, et faciles.
(Par exemple avec les règles apache, si un jour tu veux changer la forme d'une url, t'es dans le caca faut repasser partout dans ton appli ou y'a des liens.
Avec Symfony, tu modifies un fichier et ca roule tout seul)

Reply

Marsh Posté le 04-11-2009 à 22:15:47    

Merci pour ta réponse Tirkyth, c"est exactement ça.
Budlite, il faudra de toute façon une règle Apache, c'est incontournable.
 
Le principe est d'avoir une seule et même classe PHP pour traiter les URLs sans plus se soucier de ce qui se passe quand on code.
 
Edit => complément


Message édité par stef_dobermann le 04-11-2009 à 22:30:58

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 04-11-2009 à 23:02:56    

cela me paraît sympa http://www.phpcs.com/codes/URL-REWRITING-PHP-RESPECTE-REGLES-MOD_REWRITE_33296.aspx  
à suivre...


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 04-11-2009 à 23:51:24    

ouai apache oblige,
par contre tu fait comme tu veux
 
que tu tape  
 
http://localhost/test/blabla/tructru/17
 
tu peux lui dire d'ouviri dans tout les cas uniquement  le index.php a la racine
 
apres avec ton index tu parses, ton adresse, et suivent les condition tu fais ce que tu veux
 
un simple  explode('/', $url);  et ca roule   (bon ok derriere y'a la secu a géré et que c'est pas si simple)  ,  mais dans l'idée c'est juste ca

Reply

Marsh Posté le 05-11-2009 à 20:47:12    

En faite ça juste ça, mais je voulais quelque chose de structuré
et surtout trouver un moyen "propre" pour faire passer un ID de session.
Un client peut utiliser l'application sans ce logger, mais aura des droits limités.
Donc l'ouverture de session n'est pas obligatoire.


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed