![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/doctrine/orm/src/Query/ |
<?php declare(strict_types=1); namespace Doctrine\ORM\Query; use BackedEnum; use DateInterval; use DateTimeImmutable; use DateTimeInterface; use Doctrine\DBAL\Connection; use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\Types\Types; use function current; use function is_array; use function is_bool; use function is_int; /** * Provides an enclosed support for parameter inferring. * * @link www.doctrine-project.org */ class ParameterTypeInferer { /** * Infers type of a given value, returning a compatible constant: * - Type (\Doctrine\DBAL\Types\Type::*) * - Connection (\Doctrine\DBAL\Connection::PARAM_*) * * @param mixed $value Parameter value. * * @return int|string Parameter type constant. */ public static function inferType($value) { if (is_int($value)) { return Types::INTEGER; } if (is_bool($value)) { return Types::BOOLEAN; } if ($value instanceof DateTimeImmutable) { return Types::DATETIME_IMMUTABLE; } if ($value instanceof DateTimeInterface) { return Types::DATETIME_MUTABLE; } if ($value instanceof DateInterval) { return Types::DATEINTERVAL; } if ($value instanceof BackedEnum) { return is_int($value->value) ? Types::INTEGER : Types::STRING; } if (is_array($value)) { $firstValue = current($value); if ($firstValue instanceof BackedEnum) { $firstValue = $firstValue->value; } return is_int($firstValue) ? Connection::PARAM_INT_ARRAY : Connection::PARAM_STR_ARRAY; } return ParameterType::STRING; } }