From db2010082a7bddba324d9660ba9002bae3e6deeb Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Tue, 16 Nov 2021 16:37:45 +0100 Subject: [PATCH] fix: SA: Fix "...Access to an undefined property..." rule. SA stands for Static Analysis. --- phpstan-critical.neon | 5 --- .../JsonCustomFieldToArrayTransformer.php | 45 ++++++++----------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/phpstan-critical.neon b/phpstan-critical.neon index cb0ac38ce..31bd2f99f 100644 --- a/phpstan-critical.neon +++ b/phpstan-critical.neon @@ -195,11 +195,6 @@ parameters: count: 2 path: src/Bundle/ChillCalendarBundle/DataFixtures/ORM/LoadCalendarRange.php - - - message: "#^Access to an undefined property Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\JsonCustomFieldToArrayTransformer\\:\\:\\$customField\\.$#" - count: 3 - path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php - - message: "#^Call to an undefined method Chill\\\\ThirdPartyBundle\\\\Form\\\\Type\\\\PickThirdPartyTypeCategoryType\\:\\:transform\\(\\)\\.$#" count: 1 diff --git a/src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php b/src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php index 6b54df801..2d04c036d 100644 --- a/src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php +++ b/src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php @@ -1,28 +1,27 @@ om = $om; $customFields = $this->om - ->getRepository('ChillCustomFieldsBundle:CustomField') + ->getRepository(CustomField::class) ->findAll(); - + + // @TODO: in the array_map callback, CustomField::getLabel() does not exist. What do we do here? $customFieldsLablels = array_map( function($e) { return $e->getLabel(); }, $customFields); @@ -36,20 +35,12 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { { echo $customFieldsJSON; - if($customFieldsJSON === null) { // lors de la creation - $customFieldsArray = array(); + if($customFieldsJSON === null) { + $customFieldsArray = []; } else { - $customFieldsArray = json_decode($customFieldsJSON,true); + $customFieldsArray = json_decode($customFieldsJSON, true, 512, JSON_THROW_ON_ERROR); } - /* - echo "
- 4 -
"; - - var_dump($customFieldsArray); - - echo "
- 5 -
"; - */ - $customFieldsArrayRet = array(); foreach ($customFieldsArray as $key => $value) { @@ -62,7 +53,7 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { } else { $entityClass = substr($type, 10, -1); } - + $customFieldsArrayRet[$key] = $this->om ->getRepository('ChillCustomFieldsBundle:' . $entityClass) ->findOneById($value); @@ -86,10 +77,10 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { { /* echo "
- - 7 -
"; - + var_dump(array_keys($customFieldsArray)); - + echo "
- - 8 -
"; var_dump(array_keys($this->customField)); @@ -112,7 +103,7 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { //$entityClass = substr($type, 10, -1); //echo $entityClasss; if(strpos($type, 'ManyToOnePersist') === 0) { - // PEUT ETRE A FAIRE SI SEULEMENT $value->getId() ne renvoie rien... + // PEUT ETRE A FAIRE SI SEULEMENT $value->getId() ne renvoie rien... // // $this->om->persist($value); // pas bon ici @@ -121,7 +112,7 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { // et faire le persist qd fait sur l'obj parent // regarder : http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html // ou : http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html - // dans yml : + // dans yml : // lifecycleCallbacks: // prePersist: [ doStuffOnPrePersist, doOtherStuffOnPrePersist ] $this->om->flush(); // sinon l'id pose pbm @@ -142,4 +133,4 @@ class JsonCustomFieldToArrayTransformer implements DataTransformerInterface { return json_encode($customFieldsArrayRet); } -} \ No newline at end of file +}