本文整理汇总了PHP中Doctrine\ODM\MongoDB\Types\Type::hasType方法的典型用法代码示例。如果您正苦于以下问题:PHP Type::hasType方法的具体用法?PHP Type::hasType怎么用?PHP Type::hasType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\ODM\MongoDB\Types\Type
的用法示例。
在下文中一共展示了Type::hasType方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: installTypes
public function installTypes()
{
foreach ($this->types as $type => $class) {
if (!MongoDBType::hasType($type)) {
MongoDBType::addType($type, $class);
}
}
}
示例2: onBootstrap
/**
* Sets up services on the bootstrap event.
*
* @internal
* Creates the translation service and a ModuleRouteListener
*
* @param MvcEvent $e
*/
public function onBootstrap(MvcEvent $e)
{
// Register the TimezoneAwareDate type with DoctrineMongoODM
// Use it in Annotions ( @Field(type="tz_date") )
if (!DoctrineType::hasType('tz_date')) {
DoctrineType::addType('tz_date', '\\Core\\Repository\\DoctrineMongoODM\\Types\\TimezoneAwareDate');
}
$sm = $e->getApplication()->getServiceManager();
$translator = $sm->get('translator');
// initialise translator!
\Zend\Validator\AbstractValidator::setDefaultTranslator($translator);
$eventManager = $e->getApplication()->getEventManager();
$sharedManager = $eventManager->getSharedManager();
# $LogListener = new LogListener();
# $LogListener->attach($eventManager);
if (!\Zend\Console\Console::isConsole()) {
$redirectCallback = function () use($e) {
$routeMatch = $e->getRouteMatch();
$lang = $routeMatch ? $routeMatch->getParam('lang', 'en') : 'en';
$uri = $e->getRouter()->getBaseUrl() . '/' . $lang . '/error';
header('Location: ' . $uri);
};
$errorHandlerListener = new ErrorHandlerListener($sm->get('ErrorLogger'), $redirectCallback);
$errorHandlerListener->attach($eventManager);
$languageRouteListener = new LanguageRouteListener();
$languageRouteListener->attach($eventManager);
$ajaxRenderListener = new AjaxRenderListener();
$ajaxRenderListener->attach($eventManager);
$enforceJsonResponseListener = new EnforceJsonResponseListener();
$enforceJsonResponseListener->attach($eventManager);
$stringListener = new StringListener();
$stringListener->attach($eventManager);
//
$notificationlistener = $sm->get('Core/Listener/Notification');
$notificationlistener->attachShared($sharedManager);
$notificationAjaxHandler = new NotificationAjaxHandler();
$eventManager->attach(MvcEvent::EVENT_DISPATCH, array($notificationAjaxHandler, 'injectView'), -20);
$notificationlistener->attach(NotificationEvent::EVENT_NOTIFICATION_HTML, array($notificationAjaxHandler, 'render'), -20);
}
$persistenceListener = new PersistenceListener();
$persistenceListener->attach($eventManager);
$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($event) {
$application = $event->getApplication();
if ($application::ERROR_EXCEPTION == $event->getError()) {
$ex = $event->getParam('exception');
if (404 == $ex->getCode()) {
$event->setError($application::ERROR_CONTROLLER_NOT_FOUND);
}
}
}, 500);
$eventManager->attach(MvcEvent::EVENT_DISPATCH, function ($event) use($eventManager) {
$eventManager->trigger('postDispatch', $event);
}, -150);
}
示例3: checkCoordinateType
/**
* @param ClassMetadata $classMetadata
*/
protected function checkCoordinateType(ClassMetadata $classMetadata)
{
foreach ($classMetadata->fieldMappings as $fieldName => $mapping) {
if (isset($mapping['cubiche:coordinate'])) {
$type = 'Coordinate';
if (!Type::hasType($type)) {
Type::registerType($type, CoordinateType::class);
}
$classMetadata->fieldMappings[$fieldName]['type'] = $type;
}
}
}
示例4: checkIdType
/**
* @param ClassMetadata $classMetadata
*
* @throws MappingException
*/
protected function checkIdType(ClassMetadata $classMetadata)
{
foreach ($classMetadata->fieldMappings as $fieldName => $mapping) {
if (isset($mapping['cubiche:id'])) {
$idMapping = $mapping['cubiche:id'];
$type = str_replace('\\', '.', $idMapping['type']);
if (!Type::hasType($type)) {
Type::registerType($type, DynamicIdType::class);
Type::getType($type)->setTargetClass($idMapping['type']);
}
$classMetadata->fieldMappings[$fieldName]['type'] = $type;
}
}
}
示例5: checkTypes
/**
* @param ClassMetadata $classMetadata
*/
protected function checkTypes(ClassMetadata $classMetadata)
{
$types = array_keys($this->typeMapping);
foreach ($classMetadata->fieldMappings as $fieldName => $mapping) {
foreach ($types as $type) {
if (isset($mapping['cubiche:' . $type])) {
$typeName = substr($this->typeMapping[$type], strrpos($this->typeMapping[$type], '\\') + 1);
if (!Type::hasType($typeName)) {
Type::registerType($typeName, $this->typeMapping[$type]);
}
$classMetadata->fieldMappings[$fieldName]['type'] = $typeName;
break;
}
}
}
}
示例6: setUp
public function setUp()
{
Type::hasType('object') ? Type::overrideType('object', 'Payum\\Core\\Bridge\\Doctrine\\Types\\ObjectType') : Type::addType('object', 'Payum\\Core\\Bridge\\Doctrine\\Types\\ObjectType');
$config = new Configuration();
$config->setProxyDir(\sys_get_temp_dir());
$config->setProxyNamespace('PayumTestsProxies');
$config->setHydratorDir(\sys_get_temp_dir());
$config->setHydratorNamespace('PayumTestsHydrators');
$config->setMetadataDriverImpl($this->getMetadataDriverImpl($config));
$config->setMetadataCacheImpl(new ArrayCache());
$config->setDefaultDB('payum_tests');
$connection = new Connection(null, array(), $config);
$this->dm = DocumentManager::create($connection, $config);
foreach ($this->dm->getConnection()->selectDatabase('payum_tests')->listCollections() as $collection) {
$collection->drop();
}
}
示例7: createService
/**
* @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
* @return \Doctrine\ODM\MongoDB\Configuration
* @throws \Exception
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
/** @var $options \DoctrineMongoODMModule\Options\Configuration */
$options = $this->getOptions($serviceLocator, 'configuration');
$config = new Configuration();
// logger
if ($options->getLogger()) {
$logger = $serviceLocator->get($options->getLogger());
$config->setLoggerCallable(array($logger, 'log'));
}
// proxies
$config->setAutoGenerateProxyClasses($options->getGenerateProxies());
$config->setProxyDir($options->getProxyDir());
$config->setProxyNamespace($options->getProxyNamespace());
// hydrators
$config->setAutoGenerateHydratorClasses($options->getGenerateHydrators());
$config->setHydratorDir($options->getHydratorDir());
$config->setHydratorNamespace($options->getHydratorNamespace());
// default db
$config->setDefaultDB($options->getDefaultDb());
// caching
$config->setMetadataCacheImpl($serviceLocator->get($options->getMetadataCache()));
// retries
$config->setRetryConnect($options->getRetryConnect());
$config->setRetryQuery($options->getRetryQuery());
// Register filters
foreach ($options->getFilters() as $alias => $class) {
$config->addFilter($alias, $class);
}
// the driver
$config->setMetadataDriverImpl($serviceLocator->get($options->getDriver()));
// metadataFactory, if set
if ($factoryName = $options->getClassMetadataFactoryName()) {
$config->setClassMetadataFactoryName($factoryName);
}
// custom types
foreach ($options->getTypes() as $name => $class) {
if (Type::hasType($name)) {
Type::overrideType($name, $class);
} else {
Type::addType($name, $class);
}
}
return $config;
}
示例8: setUp
public function setUp()
{
$this->skipTestsIfPhp7();
if (false == (class_exists(\MongoId::class) && class_exists(Connection::class))) {
$this->markTestSkipped('Either mongo extension or\\and doctrine\\mongo-odm are not installed.');
}
Type::hasType('object') ? Type::overrideType('object', 'Payum\\Core\\Bridge\\Doctrine\\Types\\ObjectType') : Type::addType('object', 'Payum\\Core\\Bridge\\Doctrine\\Types\\ObjectType');
$config = new Configuration();
$config->setProxyDir(\sys_get_temp_dir());
$config->setProxyNamespace('PayumTestsProxies');
$config->setHydratorDir(\sys_get_temp_dir());
$config->setHydratorNamespace('PayumTestsHydrators');
$config->setMetadataDriverImpl($this->getMetadataDriverImpl($config));
$config->setMetadataCacheImpl(new ArrayCache());
$config->setDefaultDB('payum_tests');
$connection = new Connection(null, array(), $config);
$this->dm = DocumentManager::create($connection, $config);
foreach ($this->dm->getConnection()->selectDatabase('payum_tests')->listCollections() as $collection) {
$collection->drop();
}
}
示例9: createStorage
/**
* {@inheritDoc}
*/
public function createStorage($modelClass, $idProperty, array $options)
{
if (false == Type::hasType('object')) {
Type::addType('object', 'Payum\\Core\\Bridge\\Doctrine\\Types\\ObjectType');
}
$driver = new MappingDriverChain();
// payum's basic models
$coreRootDir = dirname((new \ReflectionClass(GatewayInterface::class))->getFileName());
$driver->addDriver(new XmlDriver(new SymfonyFileLocator(array($coreRootDir . '/Bridge/Doctrine/Resources/mapping' => 'Payum\\Core\\Model'), '.mongodb.xml'), '.mongodb.xml'), 'Payum\\Core\\Model');
// your models
$sererRootDir = dirname((new \ReflectionClass(Application::class))->getFileName());
AnnotationDriver::registerAnnotationClasses();
$driver->addDriver(new AnnotationDriver(new AnnotationReader(), array($sererRootDir . '/Model')), 'Payum\\Server\\Model');
$config = new Configuration();
$config->setProxyDir(\sys_get_temp_dir() . '/PayumServer');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir(\sys_get_temp_dir() . '/PayumServer');
$config->setHydratorNamespace('Hydrators');
$config->setMetadataDriverImpl($driver);
$config->setMetadataCacheImpl(new ArrayCache());
$config->setDefaultDB($options['databaseName']);
$connection = new Connection($options['host'], array(), $config);
return new DoctrineStorage(DocumentManager::create($connection, $config), $modelClass);
}
示例10: configureDocumentManager
/**
* Configures the Doctrine entity manager instance.
*
* @param array $doctrineConfig
* @param DocumentManager $documentManager
*/
protected function configureDocumentManager(array $doctrineConfig, DocumentManager $documentManager)
{
if (isset($doctrineConfig['filters'])) {
foreach ($doctrineConfig['filters'] as $name => $filter) {
if (!array_get($filter, 'enabled', false)) {
continue;
}
$documentManager->getFilterCollection()->enable($name);
}
}
// @see http://doctrine-mongodb-odm.readthedocs.org/en/latest/reference/basic-mapping.html#custom-mapping-types
if (isset($doctrineConfig['types'])) {
foreach ($doctrineConfig['types'] as $name => $className) {
if (!Type::hasType($name)) {
Type::addType($name, $className);
} else {
Type::overrideType($name, $className);
}
}
}
}
示例11: register
//.........这里部分代码省略.........
switch ($entity['type']) {
case 'annotation':
$useSimpleAnnotationReader = isset($entity['use_simple_annotation_reader']) ? $entity['use_simple_annotation_reader'] : true;
$driver = $config->newDefaultAnnotationDriver((array) $entity['path'], $useSimpleAnnotationReader);
$chain->addDriver($driver, $entity['namespace']);
break;
case 'yml':
$driver = new YamlDriver($entity['path']);
$chain->addDriver($driver, $entity['namespace']);
break;
case 'simple_yml':
$driver = new SimplifiedYamlDriver(array($entity['path'] => $entity['namespace']));
$chain->addDriver($driver, $entity['namespace']);
break;
case 'xml':
$driver = new XmlDriver($entity['path']);
$chain->addDriver($driver, $entity['namespace']);
break;
case 'simple_xml':
$driver = new SimplifiedXmlDriver(array($entity['path'] => $entity['namespace']));
$chain->addDriver($driver, $entity['namespace']);
break;
case 'php':
$driver = new StaticPHPDriver($entity['path']);
$chain->addDriver($driver, $entity['namespace']);
break;
default:
throw new \InvalidArgumentException(sprintf('"%s" is not a recognized driver', $entity['type']));
break;
}
}
$config->setMetadataDriverImpl($chain);
foreach ((array) $options['types'] as $typeName => $typeClass) {
if (Type::hasType($typeName)) {
Type::overrideType($typeName, $typeClass);
} else {
Type::addType($typeName, $typeClass);
}
}
$configs[$name] = $config;
}
return $configs;
};
$container['mongodbodm.cache.configurer'] = $container->protect(function ($name, Configuration $config, $options) use($container) {
$config->setMetadataCacheImpl($container['mongodbodm.cache.locator']($name, 'metadata', $options));
});
$container['mongodbodm.cache.locator'] = $container->protect(function ($name, $cacheName, $options) use($container) {
$cacheNameKey = $cacheName . '_cache';
if (!isset($options[$cacheNameKey])) {
$options[$cacheNameKey] = $container['mongodbodm.default_cache'];
}
if (isset($options[$cacheNameKey]) && !is_array($options[$cacheNameKey])) {
$options[$cacheNameKey] = array('driver' => $options[$cacheNameKey]);
}
if (!isset($options[$cacheNameKey]['driver'])) {
throw new \RuntimeException("No driver specified for '{$cacheName}'");
}
$driver = $options[$cacheNameKey]['driver'];
$cacheInstanceKey = 'mongodbodm.cache.instances.' . $name . '.' . $cacheName;
if (isset($container[$cacheInstanceKey])) {
return $container[$cacheInstanceKey];
}
$cache = $container['mongodbodm.cache.factory']($driver, $options[$cacheNameKey]);
if (isset($options['cache_namespace']) && $cache instanceof CacheProvider) {
$cache->setNamespace($options['cache_namespace']);
}
开发者ID:saxulum,项目名称:saxulum-doctrine-mongodb-odm-provider,代码行数:67,代码来源:DoctrineMongoDbOdmProvider.php
示例12: checkArrayCollectionType
/**
* @param ClassMetadata $classMetadata
*
* @throws MappingException
*/
protected function checkArrayCollectionType(ClassMetadata $classMetadata)
{
foreach ($classMetadata->fieldMappings as $fieldName => $mapping) {
if (isset($mapping['embedded']) || isset($mapping['reference'])) {
continue;
}
if (isset($mapping['cubiche:collection'])) {
$collectionMapping = $mapping['cubiche:collection'];
if ($collectionMapping['of'] === null) {
throw MappingException::inField('The "of" option in ' . $collectionMapping['type'] . ' type is missing', $classMetadata->name, $fieldName);
}
$type = $collectionMapping['of'] . $collectionMapping['type'];
if (!Type::hasType($type)) {
Type::addType($type, $collectionMapping['typeClassName']);
Type::getType($type)->setInnerType($collectionMapping['of']);
}
$classMetadata->fieldMappings[$fieldName]['type'] = $type;
}
}
}