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