es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función Slim 4 php-di Factory no se está ejecutando como se esperaba / no se está “llamando” completamente

Estoy teniendo problemas al registrar una fábrica que causa un comportamiento extraño.

Cuando mi dependencia es resuelta por la función de fábrica, puedo ver (a través de pruebas…) que en realidad solo se llama al constructor, nada más.

Aquí está la función de fábrica + definición de inyección de dependencias:

AuthStrategySelectorInterface::class => function (ContainerInterface $container): AuthStrategySelector {
$authStrategySelector = new AuthStrategySelector();
$authStrategySelector
->register($container->get(JwtAuthStrategy::class));
return $authStrategySelector;
}

Y aquí está el comportamiento que puedo ver, pero no entiendo: Parece que la función register nunca se llama… También lo confirmé escribiendo algo como die('test'); después de la instanciación de $authStrategySelector.

No puedo ver ningún error en los registros, etc., y he estado pensando en ese problema durante unas 2 horas…

También probé todos los demás componentes involucrados como el AuthStrategy, que incluso está vacío para las pruebas…

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con el registro de la JwtAuthStrategy con el AuthStrategySelector. Una posibilidad es que la JwtAuthStrategy no esté configurada correctamente o registrada en el contenedor de inyección de dependencias, lo que provoca que no esté disponible cuando se llama a la función de fábrica. Otra posibilidad es que pueda haber un error de ortografía o de sintaxis en alguna parte del código.

    Para solucionar este problema, puedes intentar registrar información de depuración o imprimir información de depuración en varios puntos del código para ver dónde puede estar el problema. También puedes intentar simplificar el código y eliminar cualquier complejidad innecesaria para aislar el problema. Además, puedes consultar la documentación o buscar ayuda de otros desarrolladores o foros en línea para obtener ayuda en la resolución del problema.

Comments are closed.