antonchaikin / f3-mongo
Fat-Free Framework plugin for MongoDB with event hooks, soft deletes, and auto-timestamps.
Installs: 23
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/antonchaikin/f3-mongo
Requires
- php: ^7.4 || ^8.0
- bcosca/fatfree: *
- mongodb/mongodb: *
README
Метод $f3->mdb('collection') возвращает обёртку CollectionEvents с дополнительной логикой:
- автоматическое исключение soft-deleted (
deleted_at) - события insert/update
- auto timestamps (
created_at,updated_at)
Метод $f3->_mdb('collection') — это прямой доступ к \MongoDB\Collection без каких-либо обработчиков или фильтрации. Используйте его для низкоуровневых операций или административных целей.
f3-mongo
Расширение для Fat-Free Framework (F3), добавляющее удобный интерфейс работы с MongoDB.
Возможности
- Упрощённый доступ к коллекциям через
$f3->mdb('collection') - Автоматическая фильтрация удалённых записей (
deleted_at) - Поддержка агрегаций, обновлений, вставок, удаления и слушателей изменений
- Обёртка
CollectionEventsс логикойupdated_at,created_at,bulkWrite,insertAsyncи пр. - Простой API:
find(),findOne(),insertOne(),updateMany()и др.
Установка
composer require apptor/f3-mongo
Использование
use Lumus\mDB; /** @var \Base&\F3Mongo\MongoAwareF3 $f3 */ \F3Mongo\MongoPlugin::register([ 'host' => 'localhost', 'port' => 27017, 'username' => '', 'password' => '', 'database' => 'your_db', ]); $users = $f3->mdb('users')->find(['active' => true]);
Подключение в F3
После регистрации плагина:
\F3Mongo\MongoPlugin::register([ 'host' => 'localhost', 'port' => 27017, 'database' => 'your_db', ]);
Вы получите доступ к Mongo через $f3->mdb:
-
$f3->mdb->collection('users')— возвращает обёрткуCollectionEventsс логикой:- автоматическое исключение soft-deleted (
deleted_at) - события
insert/update(если есть слушатели) - auto timestamps (
created_at,updated_at) - методы:
find(),findOne(),updateOne(),insertOne(),aggregate()и др.
- автоматическое исключение soft-deleted (
-
$f3->mdb->_collection('users')— возвращает оригинальный объект\MongoDB\Collectionбез каких-либо обработчиков.
Подсказки в IDE
Добавьте аннотацию:
/** @var \Base&\F3Mongo\MongoAwareF3 $f3 */
Поддержка
Если вы нашли баг или хотите предложить улучшение — создайте issue или pull request.