Jelajahi Sumber

added retrieval of boolean values from common "is" methods and simplified getValue()

Christian Raue 14 tahun lalu
induk
melakukan
99d979c27e
1 mengubah file dengan 14 tambahan dan 12 penghapusan
  1. 14 12
      Admin/BaseFieldDescription.php

+ 14 - 12
Admin/BaseFieldDescription.php

@@ -328,21 +328,23 @@ abstract class BaseFieldDescription implements FieldDescriptionInterface
      */
     public function getValue($object)
     {
-        $value = false;
-
-        $fieldName  = $this->getFieldName();
-        $getter     = 'get'.self::camelize($fieldName);
-
-        if (method_exists($object, $getter)) {
-
-            $value = call_user_func(array($object, $getter));
-
-        } else if ($this->getOption('code') && method_exists($object, $this->getOption('code'))) {
+        $camelizedFieldName = $this->getFieldName();
+        $getters = array(
+            'get'.$camelizedFieldName,
+            'is'.$camelizedFieldName,
+        );
+
+        if ($this->getOption('code')) {
+            $getters[] = $this->getOption('code');
+        }
 
-            $value = call_user_func(array($object, $this->getOption('code')));
+        foreach ($getters as $getter) {
+            if (method_exists($object, $getter)) {
+                return call_user_func(array($object, $getter));
+            }
         }
 
-        return $value;
+        return false;
     }
 
     /**