Sujet : Diverses questions (Xyl/Router)
Yep,
Afin de ne pas perdre mes interrogations pendant, la nuit, je les couches ici (Dormez bien, soyez sages! huhu
).
Deux questions pour le moment :
Je souhaiterais reproduire le fonctionnement des "urls générée" de Xyl (à partir des règles du routeur), et cela en php...
En gros remplacer @regle:var=value par un genre de \Hoa\Router\Http::constructURL(array('var'=>'val')) (je ne sais pas du tout si il y a quelque chose pour le faire et si ce quelque chose et dans la lib Router ou bien dans la lib Xyl...)
Le but serait de sortir une liste d'éléments d'une bdd... donc au lieu d'écrire "statiquement" dans Xyl:
<ulist>
<item><link href="@project:project=projet1">Projet1</link></item>
<item><link href="@project:project=projet2">Projet2</link></item>
</ulist>On aurait un bind du genre ou un yield pour remplacer les items...:
<yield name="projectItem">
<item><link href="@project:project=?projectName">Project <value bind="?projectName" /></link></item>
</yield>
<ulist>
<projectItem bind="?projectList" />
</ulist>Mais je ne comprend pas comment générer les urls dans ce cas là? j'avais penser à générer l'url en php au préalable, mais je ne vois pas comment ensuite comment remplir le href avec...
Deuxième question, toujours au sujet de ces urls générées dans Xyl, comment faire demander une sous-domaine vide?
Je n'ai pas réussit dans mes divers essais...
Je souhaitais donner un lien vers la home dans le Main.xyl (même depuis des sous-domaines...
Donc avec les règles suivantes:
->get(
'project',
'(?<project>.*)@/(?<query>.*?)',
'project',
'index'
)
->get(
'www',
'(?<query>.*?)',
'www',
'index'
);J'ai pensé pouvoir utiliser @www mais ça ne fonctionne pas correctement, j'ai voulu modifier la règle www, afin qu'elle accepte un www. facultatif, mais sans succès, la solution actuelle, mais qui ne me plait pas, j'ai rajouté la règle:
->_get('siteurl','www@')(j'ai mis _get un peu au hasard, mais c'était à priori pour ne pas en tenir compte lors du dispatch)
Et j'utilise donc ensuite @siteurl sauf qu'il à le www...
Ah en écrivant, ces mots, j'ai trouvé la solution, la règle siteurl est transformée comme suit:
->_get('siteurl','')Et cela fonctionne.... est-ce une bonne chose, une bonne pratique?
Voilà c'est sûrement brouillons puisque c'est un peu dans cet état dans ma tête ![]()
Merci d'avance pour les réponses ![]()