sokil / php-mongo-yii
PHPMongo Yii 适配器
0.1.7
2018-02-16 09:06 UTC
Requires
- sokil/php-mongo: >= 1.13
This package is auto-updated.
Last update: 2024-08-28 01:10:32 UTC
README
为 PHPMongo ORM 提供的 Yii 1 适配器
安装
您可以通过 Composer 安装此库
{ "require": { "sokil/php-mongo-yii": "dev-master" } }
客户端配置
<?php return array( 'components' => array( // configure mongo service 'mongo' => array( 'class' => '\Sokil\Mongo\Yii\ClientAdapter', 'dsn' => 'mongodb://127.0.0.1', 'options' => array( 'connect' => true, 'readPreference' => \MongoClient::RP_SECONDARY_PREFERRED, ), 'defaultDatabase' => 'database_name', 'map' => array( 'database_name' => array( 'collectionName1' => '\Collection\Class1', 'collectionName2' => '\Collection\Class2', ) ), 'logger' => 'somePsrCompartibleLogService', ), ), // define log 'somePsrCompartibleLogService' => array( 'class' => '\SomePSRLogger', ), );
对于 PSR 兼容的日志记录器,您可以使用 Yii 的日志适配器 https://gist.github.com/sokil/56654a5abdfbcce411ea 或 Monolog
在代码中使用 mongo
<?php // get client $client = \Yii::app()->mongo->getClient(); // get database $database = \Yii::app()->mongo->getDatabase('database_name'); // get collection of default database $collection = \Yii::app()->mongo->getCollection('collectionName1');
将 Yii 日志路由到 mongo
配置日志记录器以使用 mongo
<?php return array( 'components' => array( // define connection service 'mongo' => array( 'class' => '\Sokil\Mongo\Yii\ClientAdapter', // ... ), // configure log service 'log' => array( 'class' => 'CLogRouter', 'routes' => array( array( 'class' => '\Sokil\Mongo\Yii\LogRoute', 'levels' => 'error, warning', // define collection name where to store log records 'collectionName' => 'log', // define mongo connection service used to record logs 'serviceName' => 'mongo', ), ), ), ), );
数据提供者
<?php // get cursor $cursor = Yii::app()->mongo->getCollection('collName')->find()->where('type', 10); // get data provider $dataProvider = new \Sokil\Mongo\Yii\DataProvider($cursor, array( 'attributes' => array('name', 'type'), 'pagination' => array('pageSize' => 30) ));