Documentation is available here.
What is FuzzyRecord?
FuzzyRecord is an Object-Relational-Mapping (ORM) system for PHP applications, based on the Active record design pattern, most famously used in Ruby On Rails. It has a friendly API leveraging some of the new features in PHP 5.3 behind the scenes.
What is FuzzyRecord not?
FuzzyRecord is NOT an MVC framework for PHP. It only provides a mechanism for storing an querying model objects (objects that store your application’s data).
FuzzyRecord should be considered a work in progress. Some features are incomplete, and it will contain bugs. The API is bound to change in some places in the future. Use at your own risk!
- PHP 5.3+ (Earlier versions are NOT supported)
- PDO-MySQL and / or PDO-PGSQL
- MySQL or PostgreSQL database server
- Memcache PHP extension and server
- Friendly Rails-like API (eg: $user→photos, User::find_by_email() etc)
- Simple setup – many models will need no logic
- Support for property validation (length, regex, email addresses etc)
- File properties for storing files on a local disk
- Handles relationships between objects, including cascade updates / deletes (currently one_to_many and belongs_to are supported)
- Can be used with auto increment primary keys as well as non-integer and composite primary keys
- Can cache model data in memory using a temporary store, and / or a persistent Memcached store
- Explict or automatic transactions – rollback multiple actions accross the DB and cache stores
- Can generate a DB schema from your models
- Based on PDO for DB portability
- Includes lots of unit tests
- Better documentation
- Write more tests
- Many to many relationships without a joining table model
- Full-text searching
- Support for multiple find clauses with the same operator + field (eg: find_all_by_email_like_and_email_like())
- Support for other databases (SQLite?)
- DB-native foreign key constraints
- Auto-generated admin system