View Issue Details

IDProjectCategoryView StatusLast Update
0001660Common[All Projects] Generalpublic2016-08-08 22:27
ReporterXenosAssigned ToXenos 
PrioritynormalSeverityfeatureReproducibilityN/A
Status CloseResolutionfixed 
Product Version1.0.4 
Target VersionFixed in Version2.0.1 
Summary0001660: Construire facilement les URIs (+pretty URIs)
DescriptionActuellement, les URIs entre les pages (form et liens a) doivent être construits via html et rurl, en utilisant des chaînes string en dur.

Il faudrait utiliser les constantes des handlers (xxx::ID, xxx::URI), car ainsi, je n'aurai pas besoin de connaître magiquement leur valeur quand je code. De plus, j'aurai la possibilité de voir quelle page dépend de quelle autre. Egalement, changer l'URI d'une page sera simple (cela se répercutera partout).

La structure devra être capable de gérer des pretty URIs, et devra être aussi simple et facile à utiliser que possible (éviter les imbrications de bouts de html et de rurl dans tous les sens)
TagsNo tags attached.
Attach Tags

Activities

Xenos

Xenos

2016-08-08 22:25

administrator   ~0002134

Je passe maintenant par la méthode "buildUri" qui accepte en paramètre le tableau des arguments GET du handler:

a href="?php html(HandlerToLinkTo::buildUri(array(
    HandlerToLinkTo::PARAMETER1 => $myvalue1,
    HandlerToLinkTo::PARAMETER2 => $myvalue2
)); ?>"

Cela me permet d'éviter les rurl() et d'avoir une structure assez lisible et sécurisée (elle fait les échappement des valeurs $myvalue*).

De plus, comme beaucoup de pages utilisent un paramètre "ID", j'ai ajouté une classe abstraite intermédiaire qui définit la méthode "buildIdUrl($myId)", qui revient à faire l'appel précédent avec array(static::ID => $myid). Je m'évite donc un array en parameter pour la majorité des pages.

Les pretty URIs pourront être gérées du coup puisque je passe par une méthode, qui peut très bien construire une URI du type "/chose/bidule/1234/myvalue2", en s'assurant que l'array passé comme paramètres GET contient bien tous les paramètres requis (dans le bon ordre). En revanche, il faudra construire manuellement la ligne correspondante dans le htaccess (mais je peux surement faire un générateur pour cela aussi à terme, puisque les paramètres GET sont déclarées par des CONST ... = "..."; donc la ligne htaccess faisant la déconstruction de l'URI en une query string classique est possible).

Issue History

Date Modified Username Field Change
2016-08-07 21:49 Xenos New Issue
2016-08-07 21:49 Xenos Status New => Accepted
2016-08-08 21:31 Xenos Assigned To => Xenos
2016-08-08 21:31 Xenos Status Accepted => In progress
2016-08-08 22:25 Xenos Note Added: 0002134
2016-08-08 22:25 Xenos Status In progress => Ready
2016-08-08 22:25 Xenos Resolution open => fixed
2016-08-08 22:27 AutoUpdater Status Ready => Resolved
2016-08-08 22:27 AutoUpdater Fixed in Version => 2.0.1
2016-08-08 22:27 Xenos Status Resolved => Close