PATH:
home
/
lab2454c
/
tripvare.com
/
vendor
/
doctrine
/
dbal
/
src
/
Types
<?php declare(strict_types=1); namespace Doctrine\DBAL\Types; use Doctrine\DBAL\Exception; use function array_search; use function in_array; /** * The type registry is responsible for holding a map of all known DBAL types. * The types are stored using the flyweight pattern so that one type only exists as exactly one instance. */ final class TypeRegistry { /** @var array<string, Type> Map of type names and their corresponding flyweight objects. */ private $instances; /** * @param array<string, Type> $instances */ public function __construct(array $instances = []) { $this->instances = $instances; } /** * Finds a type by the given name. * * @throws Exception */ public function get(string $name): Type { if (! isset($this->instances[$name])) { throw Exception::unknownColumnType($name); } return $this->instances[$name]; } /** * Finds a name for the given type. * * @throws Exception */ public function lookupName(Type $type): string { $name = $this->findTypeName($type); if ($name === null) { throw Exception::typeNotRegistered($type); } return $name; } /** * Checks if there is a type of the given name. */ public function has(string $name): bool { return isset($this->instances[$name]); } /** * Registers a custom type to the type map. * * @throws Exception */ public function register(string $name, Type $type): void { if (isset($this->instances[$name])) { throw Exception::typeExists($name); } if ($this->findTypeName($type) !== null) { throw Exception::typeAlreadyRegistered($type); } $this->instances[$name] = $type; } /** * Overrides an already defined type to use a different implementation. * * @throws Exception */ public function override(string $name, Type $type): void { if (! isset($this->instances[$name])) { throw Exception::typeNotFound($name); } if (! in_array($this->findTypeName($type), [$name, null], true)) { throw Exception::typeAlreadyRegistered($type); } $this->instances[$name] = $type; } /** * Gets the map of all registered types and their corresponding type instances. * * @internal * * @return array<string, Type> */ public function getMap(): array { return $this->instances; } private function findTypeName(Type $type): ?string { $name = array_search($type, $this->instances, true); if ($name === false) { return null; } return $name; } }
[-] TimeType.php
[edit]
[-] TimeImmutableType.php
[edit]
[-] DateTimeTzType.php
[edit]
[-] DateTimeType.php
[edit]
[-] PhpDateTimeMappingType.php
[edit]
[-] Types.php
[edit]
[-] ConversionException.php
[edit]
[-] ArrayType.php
[edit]
[+]
..
[-] GuidType.php
[edit]
[-] FloatType.php
[edit]
[-] TypeRegistry.php
[edit]
[-] Type.php
[edit]
[-] DateImmutableType.php
[edit]
[-] StringType.php
[edit]
[-] BooleanType.php
[edit]
[-] BigIntType.php
[edit]
[-] DateTimeImmutableType.php
[edit]
[-] DateTimeTzImmutableType.php
[edit]
[-] PhpIntegerMappingType.php
[edit]
[-] BlobType.php
[edit]
[-] SmallIntType.php
[edit]
[-] ObjectType.php
[edit]
[-] DecimalType.php
[edit]
[-] TextType.php
[edit]
[-] AsciiStringType.php
[edit]
[-] BinaryType.php
[edit]
[-] SimpleArrayType.php
[edit]
[-] IntegerType.php
[edit]
[-] VarDateTimeImmutableType.php
[edit]
[-] VarDateTimeType.php
[edit]
[-] JsonType.php
[edit]
[-] DateType.php
[edit]
[-] DateIntervalType.php
[edit]