Richtiger Typ -Hinweisfehler, der von Phpstan auf UserInterface im Symfony -Projekt geworfen wurdePhp

PHP-Programmierer chatten hier
Anonymous
 Richtiger Typ -Hinweisfehler, der von Phpstan auf UserInterface im Symfony -Projekt geworfen wurde

Post by Anonymous »

Ich habe kürzlich begonnen, Phpstan < /strong> (Version 0.12.19) für ein Symfony 3.4 < /strong> -Projekt zu verwenden, aber ich erhalte einen Fehler, der so einfach zu lösen war, aber ich habe Schwierigkeiten, herauszufinden.

Code: Select all

vendor/bin/phpstan analyse< /code> < /p>

------ --------------------------------------------------------------------------------------------------------------
Line   src/AppBundle/Controller/MapController.php
------ --------------------------------------------------------------------------------------------------------------
94     Parameter #1 $user of static method AppBundle\Entity\MapMarker::createMapMarker() expects
Symfony\Component\Security\Core\User\UserInterface, object given.
< /code>

Dies sind die wichtigen Teile von  mapController.php < /strong>: < /p>

    $user = $this->getUser();

$mapMarker = MapMarker::createMapMarker(
$user,
$latitude,
$longitude
);
Die GetUser -Methode ist das Symfony One, also kann ich diesen Teil nicht ändern: https://github.com/symfony/symfony/blob ... ontroller/**
* Get a user from the Security Token Storage.
*
* @return UserInterface|object|null
*
* @throws \LogicException If SecurityBundle is not available
*
* @see TokenInterface::getUser()
*
* @final since version 3.4
*/
protected function getUser()
{
if (!$this->container->has('security.token_storage')) {
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require symfony/security-bundle".');
}

if (null === $token = $this->container->get('security.token_storage')->getToken()) {
return null;
}

if (!\is_object($user = $token->getUser())) {
// e.g. anonymous authentication
return null;
}

return $user;
}
< /code>

und wichtige Teile von mapmarker.php < /strong>: < /p>

/**
* @param UserInterface $user
* @param double $latitude
* @param double $longitude
*/
private function __construct(UserInterface $user, $latitude, $longitude) {
$this->createdBy = $user;
$this->latitude = $latitude;
$this->longitude = $longitude;
}

/**
* @param UserInterface $user
* @param double $latitude
* @param double $longitude
* @return MapMarker
*/
public static function createMapMarker(UserInterface $user, $latitude, $longitude): MapMarker
{
return new self($user, $latitude, $longitude);
}
< /code>

Wenn ich $ user InstanceOf userInterface < /code> true zurückgibt - so weit ich sagen kann, dass es ein UserInterface -Objekt übergeben kann, nicht nur ein "Objekt", wie Phpstan anzeigt.parameters:
level: 7
paths:
- src
- tests
checkGenericClassInNonGenericObjectType: false
checkMissingIterableValueType: false
< /code>

Was fehlt mir? < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post