This package is abandoned and no longer maintained. No replacement package was suggested.

Tiny ORM for simple CRUD operations.

0.1.0 2015-03-27 12:45 UTC

This package is auto-updated.

Last update: 2019-11-04 10:13:55 UTC


README

Latest Version Software License Build Status Codacy Badge Total Downloads

Small ORM for basic CRUD operations.

Install

Via Composer

$ composer require forestry/orm

Usage

Model

Create a model

Any model extends the class \Forestry\Orm\BaseModel.

class User extends \Forestry\Orm\BaseModel {

	public static $database = 'example';
	public static $table = 'users';

}

You have to define at least the database and table name.

Using the model

You can define getters and setter for all table fields.

$user = new User();
$user->setName('Bob');
$user->save();

Getters/setters are not mandatory. You can access the properties directly:

$user = new User();
$user->name = 'Bob';
$user->save();

Instead of calling the save() method, you can explicitly call insert() or update(). If you set the primary key on a new model object, you have to use the insert() method.

Connections

\Forestry\Orm\Storage provides a registry for PDO instances.

Set a connection

A connection is defined with the set() method:

\Forestry\Orm\Storage::set('default', [
    'dsn' => 'mysql:host=localhost',
    'user' => 'root',
    'password' => '',
    'option' => [/*any PDO options can be defined here*/]
]);

A model could use another connection if you configure it:

use \Forestry\Orm\Storage as Storage;
use \Forestry\Orm\BaseModel as BaseModel;

Storage::set('myOtherConnection', [
    'dsn' => 'mysql:host=127.0.0.1',
    'user' => 'root',
    'password' => ''
]);

class Acme extends BaseModel {

    public static $storage = 'myOtherConnection';
    public static $table = 'acme_table';

}

If you try to set an already defined connection set() throws a LogicException.

Get a defined connection

You can also freely use the PDO connection like this:

Storage::get('myOtherConnection')->exec('SELECT * FROM example.users');

If you try to get an undefined connection get() throws a OutOfBoundsException.

Close a connection

To close a defined connection use the delete() method:

Storage::delete('myOtherConnection');

If you try to close an undefined connection delte() throws a OutOfBoundsException.

Testing

$ phpunit

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.