for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Doctrine\ODM\CouchDB\Id;
use Doctrine\ODM\CouchDB\DocumentManager;
use Doctrine\ODM\CouchDB\Mapping\ClassMetadata;
/**
* Used to abstract ID generation
*
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @link www.doctrine-project.com
* @since 1.0
* @author Benjamin Eberlei <[email protected]>
* @author Lukas Kahwe Smith <[email protected]>
*/
abstract class IdGenerator
{
* @param int $generatorType
* @return IdGenerator
* @throws \Exception
static public function create($generatorType)
switch ($generatorType) {
case ClassMetadata::IDGENERATOR_ASSIGNED:
$instance = new AssignedIdGenerator();
break;
case ClassMetadata::IDGENERATOR_UUID:
$instance = new CouchUUIDGenerator();
default:
throw new \Exception("ID Generator does not exist!");
}
return $instance;
* @param object $document
* @param ClassMetadata $cm
* @param DocumentManager $dm
abstract public function generate($document, ClassMetadata $cm, DocumentManager $dm);