schorts/firestore-dao
Composer 安装命令:
composer require schorts/firestore-dao
包简介
A type-safe, domain-driven Data Access Object (DAO) abstraction for Google Cloud Firestore in PHP. Provides consistent CRUD operations, soft/hard delete support, criteria-based queries, and transaction-aware Unit of Work integration, built on top of the schorts/shared-kernel.
README 文档
README
A type‑safe, domain‑driven Data Access Object (DAO) abstraction for Google Cloud Firestore in PHP.
Provides consistent CRUD operations, soft/hard delete support, criteria‑based queries, and transaction‑aware Unit of Work integration, built on top of the schorts/shared‑kernel.
🚀 Installation
composer require schorts/firestore-dao
⚙️ Usage Example
Basic DAO
use Schorts\FirestoreDAO\FirestoreDAO; use Schorts\SharedKernel\DAO\DeleteMode; final class UserDAO extends FirestoreDAO { // Extend with domain-specific methods if needed }
CRUD Operations
$userDao = new UserDAO($firestore->collection('users'), DeleteMode::SOFT); // Create $userDao->create($user); // Find $found = $userDao->findByID($user->getId()->getValue()); // Update $userDao->update($user); // Delete (soft delete by default) $userDao->delete($user); // Restore $userDao->restore($user);
🔄 Transaction Support
$firestore->runTransaction(function ($transaction) use ($userDao) { $uow = new \Schorts\FirestoreDAO\UnitOfWork\FirestoreTransactionUnitOfWork($transaction); $user = $userDao->findByID('123', $uow); $user->setName('Updated Name'); $userDao->update($user, $uow); });
🗂 Features
- Soft delete with
is_deletedanddeleted_atfields. - Hard delete for permanent removal.
- Criteria queries with filters, ordering, limits, offsets.
- Geospatial queries using Vincenty distance calculation.
- Unit of Work integration for transaction‑aware operations.
- Consistent contract across DAOs in different backends.
📖 License
LGPL-3.0-or-later
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: LGPL-3.0-or-later
- 更新时间: 2026-06-20