Skip to content
This repository has been archived by the owner on Aug 10, 2022. It is now read-only.

vegas-cmf/dao

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vegas CMF DAO

Build Status Coverage Status Latest Stable Version Total Downloads

DAO library adapts the Data Access Object pattern to your application.

Installation

Set \Vegas\Db\Dao\Manager class as a service by adding following snippet into your services directory:

use Phalcon\DiInterface;
use Vegas\DI\ServiceProviderInterface;

/**
 * Class DaoServiceProvider
 */
class DaoServiceProvider implements ServiceProviderInterface
{
    const SERVICE_NAME = 'dao';

    /**
     * {@inheritdoc}
     */
    public function register(DiInterface $di)
    {
        $di->set(self::SERVICE_NAME, function() use ($di) {
            $dao = new \Vegas\Db\Dao\Manager;
            return $dao->setDI($di);
        }, true);
    }

    public function getDependencies()
    {
        return [];
    }
}

Example usage:

Inside injection-aware class:

$modelName = '\Foo\Models\Bar';
$model = new $modelName;

$daoManager = $this->getDI()->get('dao');

/** @var \Foo\Models\Dao\Bar $dao */
$dao = $daoManager->get($modelName);
// or
$dao = $daoManager->get($model);

/** @var \Foo\Models\Bar $result */
$result = $dao->findById('example_id');

/** @var \Foo\Models\Bar[] $results */
$results = $dao->findAll();

For the full list of available methods please examine \Vegas\Db\Dao\DefaultDao class.

By default, DAO classes for specific collections/models should be placed under additional Dao suffix and should have the same name. e.x. for \Foo\Models\Bar collection a \Foo\Models\Dao\Bar class should be created. Currently there are no additional requirements for the class implementation.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages