Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Data Fixtures

Data Fixtures Laravel Package

doctrine/data-fixtures

Doctrine Data Fixtures provides a simple way to define, manage, and run data fixture loaders for Doctrine ORM/ODM. Use it to seed databases with reusable sample data for development, testing, and demos via an organized fixture execution workflow.

View on GitHub
Deep Wiki
Context7

Doctrine2 ORM Data Fixtures Extensions

Frequently asked questions about Data Fixtures
How do I install Doctrine Data Fixtures in a Laravel project using Doctrine ORM?
Run `composer require doctrine/data-fixtures` in your project directory. Ensure your Laravel project uses Doctrine ORM (e.g., via `spatie/laravel-doctrine-orm`) and PHP 8.1+. Register the package in your `config/app.php` under `providers` if needed, though it typically works standalone with Doctrine.
Can I use Doctrine Data Fixtures for production database seeding?
While possible, it’s not recommended for production without safeguards. Use transactions or database snapshots to roll back changes after seeding. For production, consider manual scripts or migration-based seeding instead of fixtures.
What Laravel versions support Doctrine Data Fixtures with Doctrine ORM?
Doctrine Data Fixtures v2.x requires PHP 8.1+ and Doctrine ORM ≥2.11. Laravel 9+ works best, but older versions (e.g., Laravel 8) may need Doctrine ORM ≥2.11 with manual adjustments. Check compatibility with your `doctrine/dbal` and `doctrine/orm` versions.
How do I load fixtures programmatically in Laravel controllers or services?
Inject the `ExecutorInterface` (e.g., `ORMExecutor`) via Laravel’s service container. Use `$executor->execute($loader)` where `$loader` is an instance of `Loader`. Example: `$em = app(EntityManagerInterface::class); $executor = new ORMExecutor($em, new ORMPurger($em)); $executor->execute($loader);`.
Does Doctrine Data Fixtures support MongoDB (ODM) in Laravel?
Yes, but requires Doctrine ODM (≥1.0) and additional configuration. Use `ODMExecutor` and `ODMPurger` instead of ORM counterparts. Laravel projects using Doctrine ODM (e.g., via `spatie/laravel-doctrine-odm`) can integrate it similarly to ORM, though purge modes may need adjustments.
How can I test if my fixtures load correctly without affecting the database?
Use the `DryRunORMExecutor` to validate fixtures without writing to the database. Example: `$executor = new DryRunORMExecutor($em); $executor->execute($loader);`. This helps catch errors like missing references or invalid data before actual execution.
What’s the best way to handle circular references between fixtures in Laravel?
Order fixtures explicitly using `OrderedLoader` or implement custom logic in `execute()` to resolve dependencies. For complex cases, use `ReferenceRepository` to reference objects before they’re persisted, ensuring proper ordering in your fixture classes.
Can I integrate Doctrine Data Fixtures with Laravel’s built-in `php artisan db:seed`?
Yes, create a custom Artisan command extending `Command` and use the `ORMExecutor` to load fixtures. Example: `php artisan db:load-fixtures` could call `$executor->execute($loader)`. Register the command in `app/Console/Kernel.php` under `$commands`.
Are there performance considerations for large fixture datasets in Laravel?
Large datasets may slow down execution. Use batching (e.g., `Loader::setLoaderMethod('batch')`) or parallel execution with custom executors. For testing, consider truncating tables between runs or using database transactions to reset state.
What alternatives exist for seeding data in Laravel if Doctrine Data Fixtures don’t fit?
Consider Laravel’s native `DatabaseSeeder` for simple cases, or packages like `laravel/factories` for dynamic test data. For Doctrine-specific needs, `doctrine/doctrine-fixtures-bundle` (Symfony) or custom scripts with `EntityManager` may suffice, though they lack fixtures’ dependency management.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony