FieldNamer.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Reflection;
  7. use Magento\Framework\Api\SimpleDataObjectConverter;
  8. /**
  9. * Determines the name to use for fields in a data output array given method metadata.
  10. */
  11. class FieldNamer
  12. {
  13. const IS_METHOD_PREFIX = 'is';
  14. const HAS_METHOD_PREFIX = 'has';
  15. const GETTER_PREFIX = 'get';
  16. /**
  17. * Converts a method's name into a data field name.
  18. *
  19. * @param string $methodName
  20. * @return string|null
  21. */
  22. public function getFieldNameForMethodName($methodName)
  23. {
  24. if (substr($methodName, 0, 2) === self::IS_METHOD_PREFIX) {
  25. return SimpleDataObjectConverter::camelCaseToSnakeCase(substr($methodName, 2));
  26. } elseif (substr($methodName, 0, 3) === self::HAS_METHOD_PREFIX) {
  27. return SimpleDataObjectConverter::camelCaseToSnakeCase(substr($methodName, 3));
  28. } elseif (substr($methodName, 0, 3) === self::GETTER_PREFIX) {
  29. return SimpleDataObjectConverter::camelCaseToSnakeCase(substr($methodName, 3));
  30. }
  31. return null;
  32. }
  33. }