47/63chapitre
Le routeurListing d'articles
Les bases
Travaux pratiques
L'objet
Exercices
Travaux Pratique 2
Le routeur
18 min
Listing d'articles23-08-2019 12:00:00, ou devenir premium
24 min
Pagination24-08-2019 12:00:00, ou devenir premium
16 min
Simplifions la gestion de l'URL25-08-2019 12:00:00, ou devenir premium
20 min
Page article26-08-2019 12:00:00, ou devenir premium
23 min
Page catégorie27-08-2019 12:00:00, ou devenir premium
10 min
Réorganisation de la pagination28-08-2019 12:00:00, ou devenir premium
29 min
Affichage des catégories sur le listing29-08-2019 12:00:00, ou devenir premium
30 min
Création de la classe Table31-08-2019 12:00:00, ou devenir premium
34 min
Administration du site01-09-2019 12:00:00, ou devenir premium
23 min
Edition d'un article02-09-2019 12:00:00, ou devenir premium
30 min
Gestion des formulaires03-09-2019 12:00:00, ou devenir premium
24 min
Valider les données04-09-2019 12:00:00, ou devenir premium
23 min
Création d'un article05-09-2019 12:00:00, ou devenir premium
19 min
Gestion des catégories06-09-2019 12:00:00, ou devenir premium
35 min
Liaison article catégorie07-09-2019 12:00:00, ou devenir premium
31 min
Authentification08-09-2019 12:00:00, ou devenir premium
32 min

Pour pouvoir travailler plus confortablement sur notre application nous allons remplir notre base de données avec des données de tests et vu que l'on est un peu feignant on va créer un script que l'on pourra appeler pour remplir instantanément la base avec des dixaines de contenus.

On commence par complètement vider la base de données :

$pdo->exec('SET FOREIGN_KEY_CHECKS = 0');
$pdo->exec('TRUNCATE TABLE post_category');
$pdo->exec('TRUNCATE TABLE post');
$pdo->exec('TRUNCATE TABLE category');
$pdo->exec('TRUNCATE TABLE user');
$pdo->exec('SET FOREIGN_KEY_CHECKS = 1');

Pour remplir la base on peut générer des titres à la main en se basant sur l'index de notre boucle ou se baser sur une librairies comme faker afin d'avoir des données plus "réalistes".

$faker = Faker\Factory::create('fr_FR');
// On enregistre les ids des contenus créés
$posts = [];
$categories = [];

for ($i = 0; $i < 50; $i++) {
    $pdo->exec("INSERT INTO post SET name='{$faker->sentence()}', slug='{$faker->slug}', created_at='{$faker->date} {$faker->time}', content='{$faker->paragraphs(rand(3,15), true)}'");
    $posts[] = $pdo->lastInsertId();
}

for ($i = 0; $i < 5; $i++) {
    $pdo->exec("INSERT INTO category SET name='{$faker->sentence(3)}', slug='{$faker->slug}'");
    $categories[] = $pdo->lastInsertId();
}

// On associe aléatoirement des articles à des catégories
foreach($posts as $post) {
    $randomCategories = $faker->randomElements($categories, rand(0, count($categories)));
    foreach ($randomCategories as $category) {
        $pdo->exec("INSERT INTO post_category SET post_id=$post, category_id=$category");
    }
}

Ce code permet de créer 50 articles et 5 catégories en une seule fois.