A simple database ORM for PHP projects build on top of Doctrine.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src/DataMonkey
tests
.coveralls.yml
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
apigen.neon
composer.json
composer.lock
mkdocs.yml
phpunit.xml.dist

README.md

logo DataMonkey

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.