Maslosoft Mangan API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
<?php
/**
* This software package is licensed under AGPL or Commercial license.
*
* @package maslosoft/mangan
* @licence AGPL or Commercial
* @copyright Copyright (c) Piotr Masełkowski <pmaselkowski@gmail.com>
* @copyright Copyright (c) Maslosoft
* @copyright Copyright (c) Others as mentioned in code
* @link https://maslosoft.com/mangan/
*/
namespace Maslosoft\Mangan;
use Maslosoft\Mangan\Interfaces\ActiveRecordInterface;
use Maslosoft\Mangan\Sanitizers\MongoObjectId;
use Maslosoft\Mangan\Sanitizers\MongoStringId;
use Maslosoft\Mangan\Traits\CollectionNameTrait;
use Maslosoft\Mangan\Traits\EntityManagerTrait;
use Maslosoft\Mangan\Traits\FinderTrait;
use Maslosoft\Mangan\Traits\WithCriteriaTrait;
use MongoDB;
use MongoId;
/**
* Document
*
* @author Ianaré Sévi
* @author Dariusz Górecki <darek.krk@gmail.com>
* @author Invenzzia Group, open-source division of CleverIT company http://www.invenzzia.org
* @copyright 2011 CleverIT http://www.cleverit.com.pl
* @property-read MongoDB $db
* @since v1.0
*/
abstract class Document extends EmbeddedDocument implements ActiveRecordInterface
{
use EntityManagerTrait,
FinderTrait,
CollectionNameTrait,
WithCriteriaTrait;
/**
* Mongo id field
* @Label('Database ID')
* @Sanitizer(MongoObjectId)
* @see MongoObjectId
* @var MongoId|null
*/
public $_id = null;
/**
* Alias to _id
* @Label('Database ID')
* @Persistent(false)
* @Alias('_id')
* @see https://github.com/Maslosoft/Mangan/issues/40
* @var string|null
*/
public $id = null;
/**
* Constructor
* @see ScenarioManager
*
* @param string $scenario
* @param string $lang Language code
* @since v1.0
*/
public function __construct($scenario = 'insert', $lang = '')
{
$this->_id = new MongoId;
$this->_class = get_class($this);
$this->setLang($lang);
$this->setScenario($scenario);
}
/**
* Returns the empty model of the specified Document class.
* It is provided for invoking class-level methods, espacially userfull for finders.
*
* Example usage:
* ```php
* $user = User::model()->findByPk('5612470866a19540308b4568');
* ```
* @param string $lang
* @return Document model instance.
*/
public static function model($lang = null)
{
return new static(null, $lang);
}
}
API documentation generated by ApiGen