Je construis un système de routage de base afin de me débarrasser de l'index.php? Page_id = 2 choses et j'utilise une URL bien formée comme: nouvelles/régionale/sports/baseball/junior-league/2010 qui, par exemple, m'amènerait aux nouvelles de baseball de la ligue junior en 2010Réflexions sur le routage de sous-catégorie
La structure de base est comme ceci: il y a un routeur qui évalue l'URL et accède à un contrôleur approprié et appelle une méthode avec une certaine arguments (optionnels). Le contrôleur appelle ensuite la classe de modèle appropriée et la lie à une vue qui est ensuite sortie.
Prenant l'exemple précédent, je voudrais accéder: nouvelles/régionales/sport/baseball/junior ligue/2010 que je voudrais appeler la BaseballController :: vue (junior-ligue, 2010) méthode. Je souhaite que l'approche reste modulaire, donc sans définir de routes spécifiques (site-). Je voudrais juste avoir un motif dans mes URL afin que je puisse appeler la méthode du bon contrôleur avec les bons arguments.
Comment puis-je formater mes URL et spécifier certaines règles d'évaluation, afin que ce comportement soit obtenu? (Est-ce possible?)
Solutions J'ai pensé:
- Exemple url: Nouvelles/régionale/sport/baseball/view/junior championnat/2010
- sur les barres obliques exploser (résultant dans un tableau)
- look pour un tableau [0] contrôleur avec un tableau de méthode [1]
- Si cette méthode existe, appelez avec les arguments
- Si elle n'a pas, cherchez un tableau [1] contrôleur avec un tableau [2] méthode
- etc
L'avantage est que cette approche est très modulaire. La seule chose est que le temps d'accès à une page augmente en fonction du nombre de sous-catégories (ou est-ce négligeable?). Peut-être que le processus peut être accéléré en stockant un plan du site (mais c'est juste ce que je ne veux pas)
- Formater une URL comme ceci: [chemin du contrôleur]/[contrôleur]/[action] - [ argument1] - [argument2] Exemple: news/régional/sports/baseball/view-junior_league-2010 utilisant cet algorithme
- strip au "-" (qui génère un tableau) [news/regional/sports/baseball/view, junior_league, 2010]
- prendre le premier élément et exploser sur les barres obliques [[nouvelles, régionales, sports, baseball, affichage], junior_league, 2010]
- rechercher une méthode nommée tableau [0] [last] (view) dans le tableau des contrôleurs [0] [last-1] (baseball) qui se trouve dans le répertoire controllers/news/regional/sports. Utilisez le reste du tableau en tant qu'arguments.
Inconvénient est que vous utilisez également le trait de soulignement et l'URL n'est plus très agréable. Et peut-être que cela prend peu de temps?
Si vous avez lu tout cela, merci! Peut-être que vous pouvez partager vos pensées? Gr Bastiaan
J'ai mis votre question en raison de vos efforts dans la documentation. En raison du manque d'expérience, je ne peux que pointer vers un composant de routage sophistiqué https://github.com/symfony/Routing qui a fonctionné pour moi dans le passé. Puisque vous demandez des "pensées" - ce n'est peut-être pas le bon forum pour cela;) – madflow