ServiceSubscriberTrait
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start with src/Service/MyService.php and the phpstan.neon configuration using containerXmlPath, then run PHPStan against the reproduced ServiceSubscriberTrait example. Trace how the generated container XML represents the #[SubscribedService] methods; done means valid router and logger services are recognized without false "not registered" errors.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have an issue with ServiceSubscriberTrait (https://symfony.com/doc/5.4/service_container/service_subscribers_locators.html#service-subscriber-trait) on symfony 5.4 and PHP 7.4. Error message is like Service "App\Service\MyService::router" is not registered in the container.
How to reproduce:
- Install this extesion
- Add config as described in https://github.com/phpstan/phpstan-symfony#configuration
// phpstan.neon
symfony:
containerXmlPath: var/cache/dev/App_KernelDevDebugContainer.xml
- Create class MyService and copy code from symfony docs.
// src/Service/MyService.php
<?php
declare(strict_types=1);
namespace App\Service;
use Psr\Log\LoggerInterface;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Contracts\Service\Attribute\SubscribedService;
use Symfony\Contracts\Service\ServiceSubscriberInterface;
use Symfony\Contracts\Service\ServiceSubscriberTrait;
class MyService implements ServiceSubscriberInterface
{
use ServiceSubscriberTrait;
public function doSomething()
{
// $this->router() ...
// $this->logger() ...
}
#[SubscribedService]
private function router(): RouterInterface
{
return $this->container->get(__METHOD__);
}
#[SubscribedService]
private function logger(): LoggerInterface
{
return $this->container->get(__METHOD__);
}
}
- Run phpstan
The output will be:
------ ------------------------------------------------------------------
Line src/Service/MyService.php
------ ------------------------------------------------------------------
17 Method App\Service\MyService::doSomething() has no return type
specified.
24 Method App\Service\MyService::router() is unused.
26 Service "App\Service\MyService::router" is not registered in the
container.
30 Method App\Service\MyService::logger() is unused.
32 Service "App\Service\MyService::logger" is not registered in the
container.
------ ------------------------------------------------------------------
- Lenguaje dominante
- PHP
- Estrellas
- 800
- Forks
- 104
- Merge medio
- 4 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de phpstan/phpstan-symfony
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
phpstan/phpstan-symfony#510 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
phpstan/phpstan-symfony#494 · 5 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
phpstan/phpstan-symfony#268 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
phpstan/phpstan-symfony#509 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
phpstan/phpstan-symfony#466 · 4 comentarios ·
Todos los issues de phpstan/phpstan-symfony
Issues similares
-
Update the one-click "GTM4WP" Delay JS exclusion so that it also works with a custom data layer nameAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
[Feature]: Remove Kanboard Discourse forum link from README.md and CONTRIBUTING.md, or moderate itAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
bug Localization
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
solana-foundation/pay-kit#341 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cline/cline#14560 · 1 comentario ·
Los mantenedores suelen responder en 1 día