Exercice : traduction de blog
Étape 0 : GitHub
Créez un repo GitHub public avec un README et appelez-le bre04-translate-blog. Clonez-le dans le dossier php/sites de votre IDE.
Étape 1 : la BDD
Vous allez devoir créer une base de données pour cet exercice et y importer les deux tables suivantes (dans cet ordre) :
Étape 2 : traduction de la base de données
Dans PHPMyAdmin, faites en sorte de traduire les champs VARCHAR de votre base de données pour permettre d'avoir les contenus en anglais et en français.
Étape 3 : mise en place du MVC
Étape 3.1 : index.php et Router
Vous allez devoir mettre en place un index.php avec un autoload et un Router basique qui aura 2 routes différentes :
une route qui affiche tous les posts
une route qui affiche toutes les catégories
dans tous les autres cas, vous affichez la page des catégories
Votre index devra également définir, en session une langue pour votre site : anglais ou français.
Étape 3.2 : les Controllers
Vous allez mettre en place deux Controllers, un pour les posts, un pour les catégories, il auront chacun une méthode qui correspond à une route du Router.
Étape 3.3 : les Models
Vous allez créer des models pour correspondre aux deux tables de votre base de données.
Étape 3.4 : les Managers
Vous allez mettre en place un AbstractManager pour la connexion à votre base de données, ainsi que deux managers : un pour les catégories, un pour les posts. Chacun de ses managers ne contient qu'une seule méthode : findAll.
Étape 3.5 : les templates
Créez un template pour chaque route et dedans faites simplement un var_dump soit de vos posts soit de vos catégories.
Étape 4 : la gestion des traductions
Pour pouvoir gérer les traductions, vous allez devoir modifier vos Managers. En effet ceux-ci vont devoir hydrater les instances des Models différemment selon la langue stockée dans la variable de session.
Lorsque la langue est en anglais les managers vont utiliser les champs en anglais et utiliser les champs en français quand la langue est en français.
Pour vérifier que cela fonctionne, changez la valeur de la langue dans votre fichier index.php.