caridea / dao
A shrimp of a DAO support library
Installs: 510
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/caridea/dao
Requires
- php: >=7.1.0
- caridea/event: ^3.0
- psr/log: ^1.0
Requires (Dev)
- doctrine/orm: ^2.0.0
- mongodb/mongodb: ^1.2.0
- phpunit/phpunit: ^6.0.0
Suggests
- ext-mongodb: Allows use of MongoDB DAO
- doctrine/orm: Allows use of Doctrine2 DAO
- mongodb/mongodb: In case you want to make life easier for yourself
This package is not auto-updated.
Last update: 2025-10-12 01:24:08 UTC
README
Caridea is a miniscule PHP application library. This shrimpy fellow is what you'd use when you just want some helping hands and not a full-blown framework.
This is its Data Access Object support component. You can use these classes to support DAOs that you write.
Installation
You can install this library using Composer:
$ composer require caridea/dao
- The master branch (version 3.x) of this project requires PHP 7.1 and depends on
caridea/event. - Version 2.x of this project requires PHP 7.0 and depends on
caridea/event.
Compliance
Releases of this library will conform to Semantic Versioning.
Our code is intended to comply with PSR-1, PSR-2, and PSR-4. If you find any issues related to standards compliance, please send a pull request!
Documentation
- Head over to Read the Docs
Features
We provide a mechanism to translate vendor-specific exceptions (right now, MongoDB and Doctrine exceptions) into a standard exception hierarchy.
Conflicting– An exception for concurrency failures.Inoperable– An exception for invalid API usage and configuration problems.Locked– An exception for unwritable records.Unreachable– An exception for connection problems.Unretrievable– An exception for unexpected results, for instance no results or too many results.Violating– An exception for constraint violations.Duplicative– An exception for unique constraint violations.
- When all else fails, there's
Generic.
We also provide abstract DAOs that allow you to make calls against your persistence API and have exceptions translated automatically.
class MyDao extends \Caridea\Dao\MongoDb { public function create($record) { $this->logger->info("Creating the record"); $this->doExecute(function ($manager, $collection) use ($record) { $bulk = new \MongoDB\Driver\BulkWrite(); $bulk->insert($record); return $manager->executeBulkWrite($collection, $bulk); }); } }