jelix/dao

基于数据库访问对象模式的轻量级对象关系映射

v1.1.0 2023-12-23 08:03 UTC

This package is auto-updated.

Last update: 2024-09-19 21:21:45 UTC


README

基于数据库访问对象模式的轻量级对象关系映射。

它使用 JelixDatabase 作为数据库连接器。

安装

您可以通过 Composer 安装它。在您的项目中

composer require "jelix/dao"

用法

快速入门

use \Jelix\Database\AccessParameters;
use \Jelix\Database\Connection;
use \Jelix\Dao\DaoLoader;

// create a connector to the database
$accessParameters = new AccessParameters(
    array(
      'driver'=>'sqlite3',
      "database"=>"/...../tests.sqlite3",
    ), 
    array('charset'=>'UTF-8')
);

$connector = Connection::create($accessParameters);

// path to a directory where compiled class can be stored
$tempPath = '...'; 

// path to a directory where to find dao xml files
$daosDirectory = '...';

// instance of a dao loader, using a Context object
$loader = new DaoLoader(
    new \Jelix\Dao\Context(
        $connector,
        $tempPath,
        $daosDirectory
    )
);

$daoFile = 'myDao';

$dao = $loader->get($daoFile);

// we can now use methods to query records

$list = $dao->findAll();
foreach($list as $record) {
    echo $record->aField;
}

$record = $dao->get($primaryKey);
echo $record->aField;

$list = $dao->myCustomMethod();

//...

文档

文档位于 docs 目录

历史

此库已从 Jelix 框架 1.7/1.8 中提取出来,并在此基础上进行了一些现代化改进。除了类名外,工厂和记录的 API 主要相同。dao 文件的 XML 格式与 Jelix 1.6/1.7/1.8 中相同。