IPB

Bienvenue invité ( Connexion | Inscription )

> Microframework Slim 3 - routes/URL multilangues
Options
toluol
posté 29 Oct 2018, 18:36
Message #1


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 792
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



Bonsoir,

je suis en train de me former à Slim3 et je ne vois pas comment on pourrait facilement mettre en place un système de routes où l'URL est traduit. Par exemple :
Code
fr/accueil
fr/entreprise
fr/contact
en/home
en/compagny
en/contact


Le plus simple (ou concis) que j'ai trouvé étant de faire une fonction par contrôleur de page :

Code
function home($request, $response) {
    return $this->view->render($response, 'home.twig');
};
$app->get('/fr/accueil', 'home')->setName('root-fr');
$app->get('/en/home',   'home')->setName('root-en');

function compagny($request, $response) {
    return $this->view->render($response, 'compagny.twig');
};
$app->get('/fr/entreprise', 'compagny')->setName('compagny-fr');
$app->get('/en/compagny',   'compagny')->setName('compagny-en');

function contact($request, $response) {
    return $this->view->render($response, 'contact.twig');
};
$app->get('/fr/contact', 'contact')->setName('contact-fr');
$app->get('/en/contact',   'contact')->setName('contact-en');


Mais cela me semble très redondant si on a une grande structure de site... Avez-vous une idée pour simplifier ces routes multiples ? Mettre toutes les routes dans un tableau multi-dimentionel et une fonction qui le parcourt ?
Merci pour votre aide. :-)

Ce message a été modifié par toluol - 29 Oct 2018, 18:37.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
toluol
posté 30 Oct 2018, 12:22
Message #2


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 792
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



merci pour cette idée. Mais je suis bloqué sur un autre truc sans doute simplissime... J'ai essayé, avec composer, d'installer le middleware que tu m'as proposé :
Code
composer require boronczyk/localization-middleware


or, j'ai un retour comme ceci :Could not find package boronczyk/localization-middleware at any version matching your PHP version 5.5.38.0
et puis :
Code
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...


Bizarrement, je suis sur Mamp Pro, et j'ai installé PHP 7.2.1. sur ma partition virtuelle... Un fichier phpinfo(); me confirme cette version. Alors pourquoi, diantre, composer estime que je suis en PHP 5.5 ... ? grrr... mad.gif
Et que dois-je faire sur Terminal ? choisir une option ?

Dans mon fichier composer.json, j'ai notamment :
Code
    "require": {
        "php": "^7.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^6.0"
    }


Désolé pour cette question batarde... Je suis un novice dans ce domaine... unsure.gif

Ce message a été modifié par toluol - 30 Oct 2018, 12:24.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 08:35