![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Reflection/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Reflection; use Laminas\Code\Reflection\ClassReflection; /** * Reflection NameFinder */ class NameFinder { /** * Convert Data Object getter name into field name. * * @param string $getterName * @return string */ public function getFieldNameFromGetterName($getterName) { if ((strpos($getterName, 'get') === 0)) { /** Remove 'get' prefix and make the first letter lower case */ $fieldName = substr($getterName, strlen('get')); } elseif ((strpos($getterName, 'is') === 0)) { /** Remove 'is' prefix and make the first letter lower case */ $fieldName = substr($getterName, strlen('is')); } elseif ((strpos($getterName, 'has') === 0)) { /** Remove 'has' prefix and make the first letter lower case */ $fieldName = substr($getterName, strlen('has')); } else { $fieldName = $getterName; } return lcfirst($fieldName); } /** * Convert Data Object getter short description into field description. * * @param string $shortDescription * @return string */ public function getFieldDescriptionFromGetterDescription($shortDescription) { return ucfirst(substr(strstr($shortDescription, " "), 1)); } /** * Find the getter method name for a property from the given class * * @param ClassReflection $class * @param string $camelCaseProperty * @return string processed method name * @throws \LogicException If $camelCaseProperty has no corresponding getter method */ public function getGetterMethodName(ClassReflection $class, $camelCaseProperty) { $getterName = 'get' . $camelCaseProperty; $boolGetterName = 'is' . $camelCaseProperty; return $this->findAccessorMethodName($class, $camelCaseProperty, $getterName, $boolGetterName); } /** * Find the setter method name for a property from the given class * * @param ClassReflection $class * @param string $camelCaseProperty * @return string processed method name * @throws \LogicException If $camelCaseProperty has no corresponding setter method */ public function getSetterMethodName(ClassReflection $class, $camelCaseProperty) { $setterName = 'set' . $camelCaseProperty; $boolSetterName = 'setIs' . $camelCaseProperty; return $this->findAccessorMethodName($class, $camelCaseProperty, $setterName, $boolSetterName); } /** * Find the accessor method name for a property from the given class * * @param ClassReflection $class * @param string $camelCaseProperty * @param string $accessorName * @param bool $boolAccessorName * @return string processed method name * @throws \LogicException If $camelCaseProperty has no corresponding setter method */ public function findAccessorMethodName( ClassReflection $class, $camelCaseProperty, $accessorName, $boolAccessorName ) { if ($this->hasMethod($class, $accessorName)) { $methodName = $accessorName; return $methodName; } elseif ($this->hasMethod($class, $boolAccessorName)) { $methodName = $boolAccessorName; return $methodName; } else { throw new \LogicException( sprintf( 'Property "%s" does not have accessor method "%s" in class "%s".', $camelCaseProperty, $accessorName, $class->getName() ) ); } } /** * Checks if method is defined * * Case sensitivity of the method is taken into account. * * @param ClassReflection $class * @param string $methodName * @return bool */ public function hasMethod(ClassReflection $class, $methodName) { return $class->hasMethod($methodName) && ($class->getMethod($methodName)->getName() == $methodName); } }