A Database Factory for PHP Unit Tests
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
CHANGELOG.md up version to 0.3.2 Aug 18, 2011
VERSION up version to 0.3.2 Aug 18, 2011
composer.json Updating composer.json to include Lumbendil's changes: May 21, 2012


Phactory: PHP Database Object Factory for Unit Testing

What is it?

Phactory is an alternative to using database fixtures in your PHP unit tests. Instead of maintaining a separate XML file of data, you define a blueprint for each table, and then create as many different objects as you need.

Phactory was inspired by Factory Girl.


  • Define default values for your table rows once with Phactory::define(), then easily create objects in that table with a call to Phactory::create().
  • Create associations between your defined tables, and the objects will automatically be associated in the database upon creation.
  • Use sequences to create unique values for each successive object you create.

Database Support

  • MySQL
  • Sqlite
  • Postgresql

Language Support

  • PHP >= 5.3


  • Each table must have a single integer primary key for associations to work.