0.2.3 2014-04-24 16:06 UTC



The open source ORM library on PHP.


The PHP-ORM follows ActiveRecord architectural pattern.

More details can be found here.

Minimum Requirements

  • PHP 5.4+
  • PDO driver for your respective database

Supported Databases

  • MySQL
  • PostgreSQL


  • Finder methods
  • Writer methods
  • Relationships
  • Validations
  • Callbacks
  • Transactions
  • Support for multiple adapters
  • Table's schema


Use composer to install PHP ORM library. Just add to your composer.json a text below and run the php composer.phar update command to install it:

    "require": {
        "gigorok/php-orm": "0.2.*"

Basic CRUD


These are your basic methods to find and retrieve records from your database.

$post = Post::find(1);
echo $post->title; # 'Test title!'
echo $post->author_id; # 5

# also the same since it is the first record in the db
$post = Post::first();

# finding using a conditions array
$posts = Post::where('name=? or id > ?', array('The Bridge Builder', 100));


Here we create a new post by instantiating a new object and then invoking the save() method.

$post = new Post();
$post->title = 'My first blog post!!';
$post->author_id = 5;
# INSERT INTO `posts` (title,author_id) VALUES('My first blog post!!', 5)


To update you would just need to find a record first and then change one of its attributes.

$post = Post::find(1);
echo $post->title; # 'My first blog post!!'
$post->title = 'Some real title';
# UPDATE `posts` SET title='Some real title' WHERE id=1

$post->title = 'New real title';
$post->author_id = 1;
# UPDATE `posts` SET title='New real title', author_id=1 WHERE id=1


Deleting a record will not destroy the object. This means that it will call sql to delete the record in your database but you can still use the object if you need to.

$post = Post::find(1);
# DELETE FROM `posts` WHERE id=1
echo $post->title; # 'New real title'


Licensed under the MIT license.