URL rewriting [PHP5] - PHP - Programmation
Marsh Posté le 02-11-2009 à 22:39:19
L'URL rewriting ça se passe au niveau d'Apache, pas de PHP.
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
Marsh Posté le 03-11-2009 à 11:47:59
Tirkyth a écrit :
|
Si, forcément. Si tu fais rien coté serveur HTTP il se passera pas grand chose.
Marsh Posté le 03-11-2009 à 11:52:07
skeye a écrit : |
Il y a autre chose que les rewrite rules dans les htaccess de nos jours.
Marsh Posté le 03-11-2009 à 11:53:31
Tirkyth 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.
Marsh Posté le 03-11-2009 à 11:59:12
skeye a écrit : |
Non mais d'accord mais ça répond pas du tout à la demande du post initial.
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 : |
Ç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.
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
Marsh Posté le 03-11-2009 à 12:05:56
Tirkyth 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.
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.
Marsh Posté le 03-11-2009 à 12:12:24
skeye a écrit :
|
Certes
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
Marsh Posté le 03-11-2009 à 20:00:23
Déjà, merci pour toutes ces réponses
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
Marsh Posté le 04-11-2009 à 12:39:29
Tirkyth a écrit : |
Il faut voir, le principe peut être intéressant, je vais creuser, on verra...
Cependant le topic reste ouvert a toute proposition
Marsh Posté le 04-11-2009 à 20:06:09
Tirkyth 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 ?
Marsh Posté le 04-11-2009 à 20:55:35
budlite a écrit : |
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)
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
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...
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
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.
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...