Deprecated: Return type of Symfony\Component\HttpFoundation\ParameterBag::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache on line 109

Deprecated: Return type of Symfony\Component\HttpFoundation\ParameterBag::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache on line 113

Deprecated: Return type of Symfony\Component\HttpFoundation\HeaderBag::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache on line 239

Deprecated: Return type of Symfony\Component\HttpFoundation\HeaderBag::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache on line 243

Deprecated: AppKernel implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/frocom1/public_html/dev.frocom.net/app/AppKernel.php on line 0

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache on line 459

Deprecated: Symfony\Component\Config\Resource\FileResource implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/Config/Resource/FileResource.php on line 21
/* * This file is part of the Symfony package. * * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Yaml; use Symfony\Component\Yaml\Exception\ParseException; use Symfony\Component\Yaml\Exception\DumpException; use Symfony\Component\Yaml\Unescaper; use Symfony\Component\Yaml\Escaper; /** * Inline implements a YAML parser for simple YAML strings. * * @author Fabien Potencier */ class Inline { const REGEX_QUOTED_STRING = '(?:"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'([^\']*(?:\'\'[^\']*)*)\')'; // Constantes necesarias para la funcionalidad del método parse const REGEX_DATE = '(?P[0-9][0-9][0-9][0-9])-(?P[0-9][0-9]?)' . '-(?P[0-9][0-9]?)(?:(?:[Tt]|[ \t]+)(?P[0-9][0-9]?)' . ':(?P[0-9][0-9]):(?P[0-9][0-9])' . '(?:\.(?P[0-9]*))?(?:[ \t]*(?PZ|(?P[-+])' . '(?P[0-9][0-9]?)(?::(?P[0-9][0-9]))?))?)?'; const PARSE_OBJECT = true; const PARSE_OBJECT_FOR_MAP = 1; const PARSE_OBJECT_FOR_SCALAR = 2; const PARSE_EXPLICIT_OBJECT = 4; const TAG_PREFIX = 'tag:yaml.org,2002:'; /** * Converts a YAML string to a PHP value. * * @param string $value A YAML string * @param bool $exceptionOnInvalidType * @param bool $objectSupport * @param array $context * * @return mixed A PHP value * * @throws ParseException */ public static function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, array $context = array()) { // El error de "trim(): Passing null..." ocurre aquí si $value es null. // PHP 8+ ya no permite pasar null a trim(). $value = trim((string) $value); if ('' === $value) { return ''; } // is a quoted string? if (preg_match('/^'.self::REGEX_QUOTED_STRING.'$/A', $value, $matches)) { return self::parseQuotedScalar($matches[0]); } // is null? if ('null' == strtolower($value) || '' == $value || '~' == $value) { return null; } if (0 === strpos($value, '!str')) { $value = (string) substr($value, 5); } elseif (0 === strpos($value, '!bool')) { $value = (bool) substr($value, 6); } elseif (0 === strpos($value, '!int')) { $value = (int) substr($value, 5); } elseif (0 === strpos($value, '!float')) { $value = (float) substr($value, 7); } elseif (0 === strpos($value, '!array')) { $value = (array) substr($value, 7); } elseif (0 === strpos($value, '!')) { if (0 === strpos($value, '!php/object:')) { // PHP object unserialization return unserialize(substr($value, 13)); } elseif ($objectSupport) { // Tagged classes // Skip the first character which is the ! $value = substr($value, 1); $i = strpos($value, ' '); if ($i === false) { $class = $value; $value = ''; } else { $class = substr($value, 0, $i); $value = substr($value, $i + 1); } if ($objectSupport === self::PARSE_OBJECT_FOR_MAP || $objectSupport === self::PARSE_OBJECT_FOR_SCALAR) { return array(self::TAG_PREFIX.$class => self::parse($value, $exceptionOnInvalidType, self::PARSE_EXPLICIT_OBJECT)); } // Fallback to empty object instance if value is empty if (empty($value) && class_exists($class)) { return new $class(); } if (empty($value)) { throw new ParseException(sprintf('The object "%s" is not supported.', $class)); } } } // is a boolean? if (preg_match('/^(true|false)$/i', $value, $matches)) { return 'true' == strtolower($matches[0]); } // is an integer or a float? if (is_numeric($value)) { $is_float = (false !== strpos($value, '.') || false !== strpos($value, ',') || false !== strpos($value, 'e') || false !== strpos($value, '+')); return $is_float ? (float) $value : (int) $value; } // is a list? if (0 === strpos($value, '[') && ']' == substr($value, -1)) { return self::parseSequence(substr($value, 1, -1), $exceptionOnInvalidType, $objectSupport, $context); } // is a map? if (0 === strpos($value, '{') && '}' == substr($value, -1)) { return self::parseMapping(substr($value, 1, -1), $exceptionOnInvalidType, $objectSupport, $context); } // is a date? if (0 === strpos($value, '+') || preg_match('/^'.self::REGEX_DATE.'$/', $value)) { // an unquoted string can be a date if (false !== $instance = self::parseDate($value)) { return $instance; } } // is a constant? if (preg_match('/^([a-zA-Z0-9\-_]+)::/', $value, $matches)) { $constant = $matches[1].'::'.ltrim(substr($value, strlen($matches[1]) + 2), ' '); if (defined($constant)) { return constant($constant); } } // is a PHP object? if (preg_match('/^!php\/object:(.*)$/', $value, $matches)) { return unserialize($matches[1]); } // unquoted string $result = self::parseScalar($value, null, array('exceptionOnInvalidType' => $exceptionOnInvalidType, 'objectSupport' => $objectSupport, 'context' => $context)); if (null !== $result && false === $result) { throw new ParseException(sprintf('Unable to parse "%s".', $value)); } return $result; } /** * Parses a quoted scalar. * * @param string $scalar * * @return string * * @throws ParseException */ public static function parseQuotedScalar($scalar) { if (preg_match('/^"(.+)"$/s', $scalar, $matches)) { $unescaper = new Unescaper(); return $unescaper->unescapeDoubleQuotedString(stripcslashes($matches[1])); } if (preg_match('/^\'(.+)\'$/s', $scalar, $matches)) { $unescaper = new Unescaper(); return $unescaper->unescapeSingleQuotedString($matches[1]); } throw new ParseException(sprintf('Unrecognized quoted scalar: %s', $scalar)); } /** * Parses a sequence (['foo', 'bar'] in YAML). * * @param string $sequence A YAML sequence * @param bool $exceptionOnInvalidType * @param bool $objectSupport * @param array $context * * @return array A PHP array * * @throws ParseException */ public static function parseSequence($sequence, $exceptionOnInvalidType = false, $objectSupport = false, array $context = array()) { $result = array(); $tokens = self::tokenize($sequence); $is_first = true; $context = array_merge($context, array('in_sequence' => true)); foreach ($tokens as $token) { if ('\0' === $token) { // empty entry $result[] = null; continue; } if ($is_first) { $is_first = false; } else { if (',' != $token) { // La línea y el near "%s" se eliminan porque no tenemos el contexto de línea en Inline throw new ParseException(sprintf('Keys can only be "","" when parsing a sequence.')); } continue; } $result[] = self::parse($token, $exceptionOnInvalidType, $objectSupport, $context); } return $result; } /** * Parses a mapping ({'foo': 'bar'} in YAML). * * @param string $mapping A YAML mapping * @param bool $exceptionOnInvalidType * @param bool $objectSupport * @param array $context * * @return array A PHP array * * @throws ParseException */ public static function parseMapping($mapping, $exceptionOnInvalidType = false, $objectSupport = false, array $context = array()) { $result = array(); $tokens = self::tokenize($mapping, true); $context = array_merge($context, array('in_mapping' => true)); $is_key = true; $key = null; $value = null; // Inicializar $value foreach ($tokens as $token) { if ('\0' === $token) { $token = null; } if ($is_key) { $key = self::parse($token, $exceptionOnInvalidType, $objectSupport, $context); $is_key = false; } elseif (':' === $token) { // Separador, no hacemos nada } else { $value = self::parse($token, $exceptionOnInvalidType, $objectSupport, $context); $result[$key] = $value; $is_key = true; // Esperar la siguiente clave } } return $result; } /** * Parses a literal scalar. * * @param string $scalar * @param int|null $line * @param array|null $context * * @return mixed */ public static function parseScalar($scalar, $line = null, array $context = null) { // El código original en Symfony aquí simplemente llama a parse(), // pero necesitamos manejar el contexto que puede ser null desde // la versión antigua de Parser.php. $safeContext = $context ?? array(); // Estas claves se esperan en el array $context que es pasado desde Parser.php $exceptionOnInvalidType = $safeContext['exceptionOnInvalidType'] ?? false; $objectSupport = $safeContext['objectSupport'] ?? false; $originalContext = $safeContext['context'] ?? array(); return self::parse($scalar, $exceptionOnInvalidType, $objectSupport, $originalContext); } /** * Tokenizes a YAML sequence or mapping. * * @param string $sequence A YAML sequence * @param bool $isMapping * * @return array A PHP array of tokens */ public static function tokenize($sequence, $isMapping = false) { // En una versión completa de Symfony, este método se encarga de dividir // la secuencia o mapeo en tokens separados por comas. // Como no tengo el código de este método, se deja un esqueleto simple // para evitar un error fatal, pero la lógica de tokenización debe ser // más compleja. Si este método no funciona, el error será aquí. if (preg_match_all('/(,\s*|\s*:\s*|\s*'.self::REGEX_QUOTED_STRING.'|[^,\s:{}\[\]]+)/', $sequence, $matches)) { $tokens = array(); foreach ($matches[0] as $match) { $match = trim($match); if (empty($match)) { continue; } $tokens[] = $match; } return $tokens; } return array(); } /** * Parses a date. * * @param string $value A YAML date string * * @return mixed A PHP date value */ public static function parseDate($value) { if (preg_match('/^'.self::REGEX_DATE.'$/', $value, $matches)) { // Implementación simplificada para evitar errores, el original usa más lógica de timezone $date = $matches['year'].'-'.$matches['month'].'-'.$matches['day']; if (isset($matches['hour'])) { $date .= ' '.$matches['hour'].':'.$matches['minute'].':'.$matches['second']; if (isset($matches['tz']) && $matches['tz']) { $date .= ' '.$matches['tz']; } } return strtotime($date); } return false; } /** * Returns the YAML parser error message. * * @return string The YAML parser error message */ public static function getErrorMessage() { return 'Not implemented'; } /** * Returns the type of a given value. * * @param mixed $value The value to test * * @return string The type */ public static function getType($value) { return gettype($value); } }
Fatal error: Uncaught Error: Class "Symfony\Component\Yaml\Inline" not found in /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/Yaml/Parser.php:116 Stack trace: #0 /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php(260): Symfony\Component\Yaml\Parser->parse('imports:\n - ...') #1 /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php(44): Symfony\Component\DependencyInjection\Loader\YamlFileLoader->loadFile('/home/frocom1/p...') #2 /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/DelegatingLoader.php(52): Symfony\Component\DependencyInjection\Loader\YamlFileLoader->load('/home/frocom1/p...', NULL) #3 /home/frocom1/public_html/dev.frocom.net/app/AppKernel.php(40): Symfony\Component\Config\Loader\DelegatingLoader->load('/home/frocom1/p...') #4 /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache(2483): AppKernel->registerContainerConfiguration(Object(Symfony\Component\Config\Loader\DelegatingLoader)) #5 /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache(2435): Symfony\Component\HttpKernel\Kernel->buildContainer() #6 /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache(2216): Symfony\Component\HttpKernel\Kernel->initializeContainer() #7 /home/frocom1/public_html/dev.frocom.net/app/bootstrap.php.cache(2247): Symfony\Component\HttpKernel\Kernel->boot() #8 /home/frocom1/public_html/dev.frocom.net/web/app.php(23): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #9 {main} thrown in /home/frocom1/public_html/dev.frocom.net/vendor/symfony/symfony/src/Symfony/Component/Yaml/Parser.php on line 116