cimrie / slick
为 cimrie/odm 提供的流畅 ODM 元数据构建器,Doctrine MongoDB ODM 的框架集成包。
v0.2.17
2017-05-05 09:18 UTC
Requires
- cimrie/odm: ~0.2
Requires (Dev)
- laravel/laravel: 5.3.*
- mockery/mockery: ^0.9.7
- phpunit/phpunit: ^5.7
README
Doctrine ODM 流畅元数据类实现。受 laravel-doctrine/fluent 启发。与 cimrie/odm 无缝集成。
Laravel 配置
将 CImrie\Slick\SlickServiceProvider::class
添加到 config/app.php
的 'providers' 部分。遵循 cimrie/odm 的说明。
在 config/odm.php
中将 'meta' 设置为 CImrie\Slick\Mapping\SlickDriver::class
。在 config/odm.php
中每个管理者指定一个类似的 'mappings'
数组
<?php return [ 'managers' => [ 'default' => [ // ... 'meta' => env('DOCTRINE_METADATA', \CImrie\Slick\Mapping\SlickDriver::class), 'mappings' => [ MyCustomMappingClass::class ] // ... ] ] ];
使用方法
要设置映射文件,您应该扩展以下类之一
- 普通文档:
CImrie\Slick\Mapping\DocumentMapping::class
, - 嵌入文档:
CImrie\Slick\Mapping\EmbeddedMapping::class
, - 映射超类文档:
CImrie\Slick\Mapping\MappedSuperclassMapping::class
在每个映射文件中,您需要指定一个 mapFor
和一个 map(Slick $builder)
方法实现。 mapFor
应该简单地返回您想要映射的文档的类名。
map(...)
应该使用提供的 $builder
变量来指定其映射。例如
<?php use \Tests\Model\Documents\User; use CImrie\Slick\Slick; class CustomMapping extends \CImrie\Slick\Mapping\DocumentMapping { public static function mapFor(){ return User::class; } public function map(Slick $builder) { $builder->id(); $builder->string('name'); $builder->string('email')->unique(); // alternatively add the unique constraint manually //... $builder->index()->key('email')->unique(); $builder->date('joinedAt'); } }