devsdmf/datamonkey

A simple database ORM for PHP projects build on top of Doctrine.

1.2.3 2017-01-19 21:52 UTC

This package is auto-updated.

Last update: 2022-11-11 10:24:55 UTC


README

Join the chat at https://gitter.im/devsdmf/datamonkey

Build Status Coverage Status Latest Stable Version Total Downloads Documentation Status License

A simple database ORM for PHP projects build on top of Doctrine.

Installation

$ composer require devsdmf/datamonkey

Usage

Creating an entity:

namespace Vendor\Package;

use DataMonkey\Entity\ExportableEntity;
use DataMonkey\Entity\ExportAbstract;

class MyEntity extends ExportAbstract implements ExportableEntity
{
    /**
     * @pk
     * @db_ref id_entity
     * @strategy auto
     */
    public $id = null;
    
    /**
     * @db_ref foo_column
     */
    public $foo = null;
}

Creating a factory:

namespace Vendor\Package;

use DataMonkey\Entity\Factory\AbstractFactory;
use Vendor\Package\MyEntity;

class MyFactory extends AbstractFactory
{
    
    public function create($options = null)
    {
        return MyEntity::factory($options);
    }
}

Creating an repository

namespace Vendor\Package;

use DataMonkey\Repository\Repository;

class MyRepository extends Repository
{

    protected $_name = 'mytable';
}

Persisting an entity:

use Vendor\Package\MyEntity;
use Vendor\Package\MyFactory;
use Vendor\Package\MyRepository;

// Configure your doctrine DBAL connection
$connection = new \Doctrine\DBAL\Connection(...);

$entity = new MyEntity();
$entity->foo = 'bar';

$repo = new MyRepository($connection, new MyFactory());
$repo->save($entity);

Done!

Documentation

Tests

$ composer install --dev
$ ./vendor/bin/phpunit

License

This library is licensed under the MIT license.