- Récupération Symfony skeleton
composer create symfony/skeleton
cd skeleton
- Init du git.
git init
- Lancement du serveur
php -S 127.0.0.1:8000 -t public
Test de mon app en allant depuis mon navigateur sur l'URL définie juste avant : http://127.0.0.1:8000.
- Récupération des outils ORM et générations
composer require symfony/orm-pack
composer require symfony/maker-bundle
- Récupération de l'outil API Platform
composer require api
- Configuration et création de la DB
nano .env
et personnaliser la ligne pour la rendre conforme à vos besoins :
DATABASE_URL=mysql://username:password@127.0.0.1:3306/database_name
bin/console doctrine:database:create
bin/console doctrine:schema:create
- Génération de mes entités
php bin/console make:entity // Et suivre les étapes pas à pas pour chaque entités necessaires.
- Répercutions de mes entités sur la DB.
php bin/console make:migration
php bin/console doctrine:migrations:migrate
À ce stade, je peux tester mon appli, j'ai accès à la doc d'api depuis mon navigateur : http://localhost:8000/api
-
Remplissage de la DB
6.1. Récupération des librairies
composer require --dev doctrine/doctrine-fixtures-bundle
composer require fzaninotto/faker
6.2. Création des *data-seed*
mkdir src/DataFixtures
touch src/DataFixtures/AppFixtures
nano src/DataFixtures/AppFixtures
<?php
namespace App\DataFixtures;
use App\Entity\Article;
use App\Entity\Category;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Faker;
// /project/src/DataFixtures/AppFixtures.php
class AppFixtures extends Fixture
{
public function load(ObjectManager $manager)
{
$faker = Faker\Factory::create();
for ($i = 0; $i < 10; $i++) {
$category = new Category();
$category->setName($faker->sentence());
for ($i2= 0; $i2 < $i; $i2++) {
$article = new Article();
$article->setTitle($faker->sentence());
$article->setContent($faker->paragraph());
$article->setCategory($category);
$article->setAuthor($faker->name);
$manager->persist($article);
}
$manager->persist($category);
}
$manager->flush();
}
}
bin/console doctrine:fixtures:load
À ce stade, je peux tester mon appli, j'ai toujours accès à la doc d'api depuis mon navigateur : http://localhost:8000/api Depuis postman : http://localhost:8000/api, j'ai accès à mon API !
- Récupération de la lib admin-easybundle
composer require admin
- Configuration des entités à Admin
nano config/packages/easy_admin.yaml
bin/console debug:router
- Debbug des entités
nano src/Entity/Article.php
nano src/Entity/Category.php
Testons
- Configuration de l'internationalisation
nano config/packages/translation.yaml
composer require symfony/translation
nano config/packages/translation.yaml
bin/console cache:clear
Y a plus qu'a test !