cakephp/datasource

提供连接管理以及用于实体和查询的特质,这些特质可以用于不同的数据存储

5.1.0 2024-09-06 12:23 UTC

This package is auto-updated.

Last update: 2024-09-21 03:04:38 UTC


README

Total Downloads License

CakePHP 数据源库

此库包含用于使用任何数据源实现存储库和实体的接口,一个用于管理数据源连接的类,以及一些特质以帮助您快速实现此包提供的接口。

存储库

存储库是一个能够使用中间查询对象来表示对数据存储的命令并返回实体作为该系统结果的单一结果单元的类,使用如 findsavedelete 等操作与数据源进行交互。

在关系型数据库的情况下,存储库将是一个 Table,它可以通过 Query 返回单个或多个 Entity 对象。

此库公开了以下接口,用于创建实现存储库模式并与 CakePHP 框架兼容的系统

  • RepositoryInterface - 描述基存储库类的方 法。
  • EntityInterface - 描述单个结果对象的方 法。
  • ResultSetInterface - 表示查询结果作为实体集合的概念。

此外,此包还提供了一些特质和类,您可以在自己的实现中使用

  • EntityTrait - 包含 EntityInterface 的默认实现。
  • QueryTrait - 公开用于创建能够返回装饰集合的查询对象的方 法。
  • ResultSetDecorator - 装饰任何可遍历的对象,使其符合 ResultSetInterface

连接

此库包含一些旨在创建和管理连接对象的实用类。连接通常用于存储库以与实际数据源系统进行交互。

ConnectionManager 类充当访问应用程序数据库连接的注册表。它提供了一个其他对象可以获取现有连接引用的地方。使用 ConnectionManager 创建连接很简单

use Cake\Datasource\ConnectionManager;

ConnectionManager::config('connection-one', [
    'className' => 'MyApp\Connections\CustomConnection',
    'param1' => 'value',
    'param2' => 'another value'
]);

ConnectionManager::config('connection-two', [
    'className' => 'MyApp\Connections\CustomConnection',
    'param1' => 'different value',
    'param2' => 'another value'
]);

当请求时,ConnectionManager 将通过将 param1param2 作为构造函数的第一个参数传递给数组来实例化 MyApp\Connections\CustomConnection

配置后的连接可以通过 ConnectionManager::get() 获取。如果之前尚未构建,此方法将构建和加载连接,否则返回现有的已知连接

use Cake\Datasource\ConnectionManager;
$conn = ConnectionManager::get('master');

也可以通过直接将实例传递给管理器来存储连接对象

use Cake\Datasource\ConnectionManager;
$conn = ConnectionManager::config('other', $connectionInstance);

文档

请确保检查官方API文档