vegas-cmf/dao

此包已弃用且不再维护。未建议替代包。

Vegas CMF DAO

v2.0.0-beta 2016-06-03 14:27 UTC

This package is not auto-updated.

Last update: 2022-08-11 23:44:02 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads

DAO库将数据访问对象模式应用于您的应用程序。

安装

通过在services目录中添加以下片段,将\Vegas\Db\Dao\Manager类设置为一个服务:

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 [];
    }
}

示例用法

在注入感知类中

$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();

有关可用方法的完整列表,请检查\Vegas\Db\Dao\DefaultDao类。

默认情况下,特定集合/模型的DAO类应放置在额外的Dao后缀下,并具有相同的名称。例如,对于\Foo\Models\Bar集合,应创建一个\Foo\Models\Dao\Bar类。目前对类的实现没有额外的要求。