Fixtures
| A loader sketch | |
| Load order | |
| Purge between tests | |
| Faker concept |
A loader sketch
Fixtures are small scripts that fill the database with known rows. They create plain objects, hand them to the manager, and flush once.
The sketch below builds two users and stores them. Keep each loader short so failures are easy to trace.
$first = new User("Ada"); $second = new User("Linus"); $manager->persist($first); $manager->persist($second); $manager->flush();
Load order
Load parents before children so every link points at a row that exists. Users come before posts, and posts come before comments.
One ordered list drives the whole run. Read it top to bottom to see the load plan.
$ordered = ["users", "posts", "comments"]; foreach ($ordered as $name) { echo "Load: " . $name . "\n"; }
Purge between tests
Old rows must go before fresh ones load. Wipe the test tables between runs so counts and unique fields start clean.
Reload the full set with the console command after a purge. The same command also fills a fresh dev copy.
php bin/console doctrine:fixtures:load
Purging database Loading fixtures Done
Faker concept
Real looking data beats rows named test one and test two. A fake data helper builds names, mails, and sentences that look alive.
Treat it as a concept only: ask for a name when you need one. No extra calls are needed for this lesson.
Next: Pagination
Article author: Arthur Isaev