cakephp / datasource
Provides connection managing and traits for Entities and Queries that can be reused for different datastores
Installs: 22 117 889
Dependents: 11
Suggesters: 1
Security: 0
Stars: 47
Watchers: 29
Forks: 7
pkg:composer/cakephp/datasource
Requires
- php: >=8.1
- cakephp/core: 5.2.*@dev
- psr/simple-cache: ^2.0 || ^3.0
Requires (Dev)
- cakephp/cache: 5.2.*@dev
- cakephp/collection: 5.2.*@dev
- cakephp/utility: 5.2.*@dev
Suggests
- cakephp/cache: If you decide to use Query caching.
- cakephp/collection: If you decide to use ResultSetInterface.
- cakephp/utility: If you decide to use EntityTrait.
- dev-master
- 5.x-dev
- dev-5.next / 5.3.x-dev
- 5.2.9
- 5.2.8
- 5.2.7
- 5.2.6
- 5.2.5
- 5.2.4
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.2.0-RC1
- 5.1.6
- 5.1.5
- 5.1.4
- 5.1.2
- 5.1.1
- 5.1.0
- 5.1.0-RC2
- 5.1.0-RC1
- 5.0.11
- 5.0.10
- 5.0.9
- 5.0.8
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.0
- 5.0.0-RC2
- 5.0.0-RC1
- 5.0.0-beta2
- 5.0.0-beta1
- 4.x-dev
- 4.6.2
- 4.6.1
- 4.6.0
- 4.6.0-RC1
- 4.5.10
- 4.5.9
- 4.5.8
- 4.5.7
- 4.5.6
- 4.5.5
- 4.5.4
- 4.5.3
- 4.5.2
- 4.5.1
- 4.5.0
- 4.5.0-RC1
- 4.4.17
- 4.4.16
- 4.4.15
- 4.4.14
- 4.4.13
- 4.4.12
- 4.4.11
- 4.4.10
- 4.4.9
- 4.4.8
- 4.4.7
- 4.4.6
- 4.4.5
- 4.4.4
- 4.4.3
- 4.4.2
- 4.4.1
- 4.4.0
- 4.4.0-RC2
- 4.4.0-RC1
- 4.3.x-dev
- 4.3.11
- 4.3.10
- 4.3.9
- 4.3.8
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.3.0-RC4
- 4.3.0-RC3
- 4.3.0-RC2
- 4.3.0-RC1
- 4.2.x-dev
- 4.2.12
- 4.2.11
- 4.2.10
- 4.2.9
- 4.2.8
- 4.2.7
- 4.2.6
- 4.2.5
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.2.0-RC1
- 4.2.0-beta1
- 4.1.7
- 4.1.6
- 4.1.5
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.1.0-RC2
- 4.1.0-RC1
- 4.1.0-beta1
- 4.0.x-dev
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 4.0.0-RC2
- 4.0.0-RC1
- 4.0.0-beta4
- 4.0.0-beta3
- 4.0.0-beta2
- 4.0.0-beta1
- 4.0.0-alpha1
- 3.x-dev
- 3.10.5
- 3.10.4
- 3.10.3
- 3.10.1
- 3.10.0
- 3.10.0-RC1
- 3.9.10
- 3.9.9
- 3.9.8
- 3.9.7
- 3.9.6
- 3.9.5
- 3.9.4
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.9.0-RC2
- 3.9.0-RC1
- 3.8.12
- 3.8.11
- 3.8.10
- 3.8.9
- 3.8.8
- 3.8.7
- 3.8.6
- 3.8.5
- 3.8.4
- 3.8.3
- 3.8.2
- 3.8.1
- 3.8.0
- 3.8.0-RC3
- 3.8.0-RC2
- 3.8.0-RC1
- 3.8.0-beta1
- 3.7.9
- 3.7.8
- 3.7.7
- 3.7.6
- 3.7.5
- 3.7.4
- 3.7.3
- 3.7.2
- 3.7.1
- 3.7.0
- 3.7.0-RC3
- 3.7.0-RC2
- 3.7.0-RC1
- 3.7.0-beta1
- 3.6.14
- 3.6.13
- 3.6.12
- 3.6.11
- 3.6.10
- 3.6.9
- 3.6.8
- 3.6.7
- 3.6.6
- 3.6.5
- 3.6.4
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.6.0-RC2
- 3.6.0-RC1
- 3.6.0-beta3
- 3.6.0-beta2
- 3.6.0-beta1
- 3.5.x-dev
- 3.5.17
- 3.5.15
- 3.5.14
- 3.5.13
- 3.5.12
- 3.5.11
- 3.5.10
- 3.5.9
- 3.5.8
- 3.5.7
- 3.5.6
- 3.5.5
- 3.5.4
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.5.0-RC2
- 3.5.0-RC1
- 3.4.x-dev
- 3.4.14
- 3.4.13
- 3.4.12
- 3.4.11
- 3.4.10
- 3.4.9
- 3.4.8
- 3.4.7
- 3.4.6
- 3.4.5
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.4.0-RC4
- 3.4.0-RC3
- 3.4.0-RC2
- 3.4.0-RC1
- 3.4.0-beta4
- 3.4.0-beta3
- 3.4.0-beta2
- 3.4.0-beta1
- 3.3.16
- 3.3.15
- 3.3.14
- 3.3.13
- 3.3.12
- 3.3.11
- 3.3.10
- 3.3.9
- 3.3.8
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.3.0-RC1
- 3.3.0-beta3
- 3.3.0-beta2
- 3.3.0-beta
- 3.2.x-dev
- 3.2.14
- 3.2.13
- 3.2.12
- 3.2.11
- 3.2.10
- 3.2.9
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.2.0-RC1
- 3.1.x-dev
- 3.1.13
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.1.0-RC1
- 3.1.0-beta2
- 3.1.0-beta
- 3.0.x-dev
- 3.0.18
- 3.0.15
- 3.0.13
- 3.0.12
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-RC2
- 3.0.0-RC1
- 3.0.0-beta3
- dev-4.next
- dev-datasouce
- dev-3.next
- dev-3-1
- dev-3-0
This package is auto-updated.
Last update: 2025-10-17 03:16:51 UTC
README
CakePHP Datasource Library
This library contains interfaces for implementing Repositories and Entities using any data source, a class for managing connections to datasources and traits to help you quickly implement the interfaces provided by this package.
Repositories
A repository is a class capable of interfacing with a data source using operations such as
find, save and delete by using intermediate query objects for expressing commands to
the data store and returning Entities as the single result unit of such system.
In the case of a Relational database, a Repository would be a Table, which can be return single
or multiple Entity objects by using a Query.
This library exposes the following interfaces for creating a system that implements the repository pattern and is compatible with the CakePHP framework:
RepositoryInterface- Describes the methods for a base repository class.EntityInterface- Describes the methods for a single result object.ResultSetInterface- Represents the idea of a collection of Entities as a result of a query.
Additionally, this package provides a few traits and classes you can use in your own implementations:
EntityTrait- Contains the default implementation for theEntityInterface.QueryTrait- Exposes the methods for creating a query object capable of returning decoratable collections.ResultSetDecorator- Decorates any traversable object, so it complies withResultSetInterface.
Connections
This library contains a couple of utility classes meant to create and manage connection objects. Connections are typically used in repositories for interfacing with the actual data source system.
The ConnectionManager class acts as a registry to access database connections
your application has. It provides a place that other objects can get references
to existing connections. Creating connections with the ConnectionManager is
easy:
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' ]);
When requested, the ConnectionManager will instantiate
MyApp\Connections\CustomConnection by passing param1 and param2 inside an
array as the first argument of the constructor.
Once configured connections can be fetched using ConnectionManager::get().
This method will construct and load a connection if it has not been built
before, or return the existing known connection:
use Cake\Datasource\ConnectionManager; $conn = ConnectionManager::get('master');
It is also possible to store connection objects by passing the instance directly to the manager:
use Cake\Datasource\ConnectionManager; $conn = ConnectionManager::config('other', $connectionInstance);
Documentation
Please make sure you check the official API documentation