Code Duplication    Length = 21-21 lines in 2 locations

src/Core/Variables/StandardVariableProvider.php 1 location

@@ 339-359 (lines=21) @@
336
     * @param string $propertyName
337
     * @return string|NULL
338
     */
339
    protected function detectAccessor($subject, $propertyName)
340
    {
341
        if (is_array($subject) || ($subject instanceof \ArrayAccess && $subject->offsetExists($propertyName))) {
342
            return self::ACCESSOR_ARRAY;
343
        }
344
        if (is_object($subject)) {
345
            $upperCasePropertyName = ucfirst($propertyName);
346
            $getter = 'get' . $upperCasePropertyName;
347
            if (method_exists($subject, $getter)) {
348
                return self::ACCESSOR_GETTER;
349
            }
350
            if ($this->isExtractableThroughAsserter($subject, $propertyName)) {
351
                return self::ACCESSOR_ASSERTER;
352
            }
353
            if (property_exists($subject, $propertyName)) {
354
                return self::ACCESSOR_PUBLICPROPERTY;
355
            }
356
        }
357
358
        return null;
359
    }
360
361
    /**
362
     * Tests whether a property can be extracted through `is*` or `has*` methods.

src/Core/Variables/VariableExtractor.php 1 location

@@ 204-224 (lines=21) @@
201
     * @param string $propertyName
202
     * @return string|NULL
203
     */
204
    protected function detectAccessor($subject, $propertyName)
205
    {
206
        if (is_array($subject) || ($subject instanceof \ArrayAccess && $subject->offsetExists($propertyName))) {
207
            return self::ACCESSOR_ARRAY;
208
        }
209
        if (is_object($subject)) {
210
            $upperCasePropertyName = ucfirst($propertyName);
211
            $getter = 'get' . $upperCasePropertyName;
212
            if (is_callable([$subject, $getter])) {
213
                return self::ACCESSOR_GETTER;
214
            }
215
            if ($this->isExtractableThroughAsserter($subject, $propertyName)) {
216
                return self::ACCESSOR_ASSERTER;
217
            }
218
            if (property_exists($subject, $propertyName)) {
219
                return self::ACCESSOR_PUBLICPROPERTY;
220
            }
221
        }
222
223
        return null;
224
    }
225
226
    /**
227
     * Tests whether a property can be extracted through `is*` or `has*` methods.