Comment faire si je souhaite que mon application puisse fonctionner
quelque soit la façon d'écrire les urls ?
Mon problème se situe au niveau de l'output, pas de l'input (je suis
capable de traiter les requètes pour les 3 types cités).
Par exemple si je décide d'écrire tous les urls suivant la forme
mod_rewrite, je ne pourrais pas porter l'application sur un server qui
ne supporte pas mod_rewrite.
Le mieux serait une solution complètement générique qui ne soit pas
limité à des schema conventionels du type
www.host.com/page/action/id.
Comment faire si je souhaite que mon application puisse fonctionner quelque soit la façon d'écrire les urls ? Mon problème se situe au niveau de l'output, pas de l'input (je suis capable de traiter les requètes pour les 3 types cités).
[...]
Des suggestions ? Merci
Peut-être regarder $_SERVER["REQUEST_URI"], et en déduire le mode de fonctionnement, connaissant les paramètres passés.
Note que tu dois quand même avoir une liste de shémas possibles pas trop hétérogène. En effet, si <www.host.com/index.php?a=x&b=y> devient <www.host.com/x/y> sur un serveur et <www.host.com/y/x> sur un autre, alors tu n'auras aucune chance de pouvoir écrire un code commun.
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Dans une application web reposant sur apache et php, on peut écrire
les urls de plusieurs manières. Par exemple:
Comment faire si je souhaite que mon application puisse fonctionner
quelque soit la façon d'écrire les urls ?
Mon problème se situe au niveau de l'output, pas de l'input (je suis
capable de traiter les requètes pour les 3 types cités).
[...]
Des suggestions ?
Merci
Peut-être regarder $_SERVER["REQUEST_URI"], et en déduire le mode de
fonctionnement, connaissant les paramètres passés.
Note que tu dois quand même avoir une liste de shémas possibles pas
trop hétérogène. En effet, si <www.host.com/index.php?a=x&b=y> devient
<www.host.com/x/y> sur un serveur et <www.host.com/y/x> sur un autre,
alors tu n'auras aucune chance de pouvoir écrire un code commun.
--
Olivier Miakinen
Troll du plus sage chez les conviviaux : le nouveau venu, avec
son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Comment faire si je souhaite que mon application puisse fonctionner quelque soit la façon d'écrire les urls ? Mon problème se situe au niveau de l'output, pas de l'input (je suis capable de traiter les requètes pour les 3 types cités).
[...]
Des suggestions ? Merci
Peut-être regarder $_SERVER["REQUEST_URI"], et en déduire le mode de fonctionnement, connaissant les paramètres passés.
Note que tu dois quand même avoir une liste de shémas possibles pas trop hétérogène. En effet, si <www.host.com/index.php?a=x&b=y> devient <www.host.com/x/y> sur un serveur et <www.host.com/y/x> sur un autre, alors tu n'auras aucune chance de pouvoir écrire un code commun.
-- Olivier Miakinen Troll du plus sage chez les conviviaux : le nouveau venu, avec son clan, s'infiltre dans les groupes de nouvelles. (3 c.)
Reno
Merci pour votre réponse.
Naivement, je dirai que les urls de la forme www.host.com/index.php?a=x&b=y sont les seuls qui contiennent toute l'information necessaire pour un fonctionnement minimaliste. Donc pour une solution générique, j'entrevois la possibilité de travailler à partir de ces urls. Exemple:
$urlRewriter = new UrlRewriter($mapper); $urlRewriter->format('index.php?a=x&b=y');
Retournerait www.host.com/index.php?a=x&b=y ou www.host.com/x/y etc selon le type de $mapper. Dans cette configuration, une grande partie de l'information est injectée via la bonne instance de $mapper.
Une alternative plus simple mais qui pourrait s'avérer trop limité par la suite serait de restreindre la forme des urls (et donc d'être complétement tributaire de l'application). Par exemple:
$urlRewriter = new UrlRewriter('www.host.com'); $urlRewriter->format($page, $action, $id, $options);
Ces deux approches ont chacunes leurs avantages et inconvénients... Peut être que quelqu'un a une meilleur idée ?
Au pire (ou meilleur?) des cas, il serait toujours possible de monter d'un niveau en abstraction et rendre les deux solutions interchangeables (par exemple en overloadant la methode UrlRewriter::format()).
Merci pour votre réponse.
Naivement, je dirai que les urls de la forme
www.host.com/index.php?a=x&b=y sont les seuls qui contiennent toute
l'information necessaire pour un fonctionnement minimaliste.
Donc pour une solution générique, j'entrevois la possibilité de
travailler à partir de ces urls. Exemple:
$urlRewriter = new UrlRewriter($mapper);
$urlRewriter->format('index.php?a=x&b=y');
Retournerait www.host.com/index.php?a=x&b=y ou www.host.com/x/y etc
selon le type de $mapper.
Dans cette configuration, une grande partie de l'information est
injectée via la bonne instance de $mapper.
Une alternative plus simple mais qui pourrait s'avérer trop limité
par la suite serait de restreindre la forme des urls (et donc d'être
complétement tributaire de l'application). Par exemple:
$urlRewriter = new UrlRewriter('www.host.com');
$urlRewriter->format($page, $action, $id, $options);
Ces deux approches ont chacunes leurs avantages et inconvénients...
Peut être que quelqu'un a une meilleur idée ?
Au pire (ou meilleur?) des cas, il serait toujours possible de monter
d'un niveau en abstraction et rendre les deux solutions
interchangeables (par exemple en overloadant la methode
UrlRewriter::format()).
Naivement, je dirai que les urls de la forme www.host.com/index.php?a=x&b=y sont les seuls qui contiennent toute l'information necessaire pour un fonctionnement minimaliste. Donc pour une solution générique, j'entrevois la possibilité de travailler à partir de ces urls. Exemple:
$urlRewriter = new UrlRewriter($mapper); $urlRewriter->format('index.php?a=x&b=y');
Retournerait www.host.com/index.php?a=x&b=y ou www.host.com/x/y etc selon le type de $mapper. Dans cette configuration, une grande partie de l'information est injectée via la bonne instance de $mapper.
Une alternative plus simple mais qui pourrait s'avérer trop limité par la suite serait de restreindre la forme des urls (et donc d'être complétement tributaire de l'application). Par exemple:
$urlRewriter = new UrlRewriter('www.host.com'); $urlRewriter->format($page, $action, $id, $options);
Ces deux approches ont chacunes leurs avantages et inconvénients... Peut être que quelqu'un a une meilleur idée ?
Au pire (ou meilleur?) des cas, il serait toujours possible de monter d'un niveau en abstraction et rendre les deux solutions interchangeables (par exemple en overloadant la methode UrlRewriter::format()).