antonchaikin / f3-mongo
Fat-Free Framework plugin for MongoDB with event hooks, soft deletes, and auto-timestamps.
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.