original_string: public function setProps($props = array())
      {
          $props = $this->moveShortcuts($props);
          $type = isset($props['attribs']['type']) ? $props['attribs']['type'] : null;
          $typeChanging = $type && (!isset($this->attribs['type']) || $type !== $this->attribs['type']);
          $propsType = $typeChanging && isset($this->defaultPropsType[$type])
              ? $this->defaultPropsType[$type]
              : array();
          $this->props = $this->mergeProps(array(
              $this->props,
              $propsType,
              $props,
          ));
          if (empty($this->props['attribs']['x-moz-errormessage']) && !empty($this->props['invalidReason'])) {
              $this->props['attribs']['x-moz-errormessage'] = $this->props['invalidReason'];
          }
          $this->attribs = &$this->props['attribs'];
          $this->getId();
          if (\in_array($type, array('checkbox','radio','select'))) {
              $this->normalizeCrs();
          } elseif ($type == 'submit' && empty($props['label']) && !empty($props['attribs']['value'])) {
              $props['label'] = $props['attribs']['value'];
          }
      }
code: public function setProps($props = array())
      {
          $props = $this->moveShortcuts($props);
          $type = isset($props['attribs']['type']) ? $props['attribs']['type'] : null;
          $typeChanging = $type && (!isset($this->attribs['type']) || $type !== $this->attribs['type']);
          $propsType = $typeChanging && isset($this->defaultPropsType[$type])
              ? $this->defaultPropsType[$type]
              : array();
          $this->props = $this->mergeProps(array(
              $this->props,
              $propsType,
              $props,
          ));
          if (empty($this->props['attribs']['x-moz-errormessage']) && !empty($this->props['invalidReason'])) {
              $this->props['attribs']['x-moz-errormessage'] = $this->props['invalidReason'];
          }
          $this->attribs = &$this->props['attribs'];
          $this->getId();
          if (\in_array($type, array('checkbox','radio','select'))) {
              $this->normalizeCrs();
          } elseif ($type == 'submit' && empty($props['label']) && !empty($props['attribs']['value'])) {
              $props['label'] = $props['attribs']['value'];
          }
      }
code_tokens: public function setProps ( $ props = array ( ) ) { $ props = $ this -> moveShortcuts ( $ props ) ; $ type = isset ( $ props [ 'attribs' ] [ 'type' ] ) ? $ props [ 'attribs' ] [ 'type' ] : null ; $ typeChanging = $ type && ( ! isset ( $ this -> attribs [ 'type' ] ) || $ type !== $ this -> attribs [ 'type' ] ) ; $ propsType = $ typeChanging && isset ( $ this -> defaultPropsType [ $ type ] ) ? $ this -> defaultPropsType [ $ type ] : array ( ) ; $ this -> props = $ this -> mergeProps ( array ( $ this -> props , $ propsType , $ props , ) ) ; if ( empty ( $ this -> props [ 'attribs' ] [ 'x-moz-errormessage' ] ) && ! empty ( $ this -> props [ 'invalidReason' ] ) ) { $ this -> props [ 'attribs' ] [ 'x-moz-errormessage' ] = $ this -> props [ 'invalidReason' ] ; } $ this -> attribs = & $ this -> props [ 'attribs' ] ; $ this -> getId ( ) ; if ( \ in_array ( $ type , array ( 'checkbox' , 'radio' , 'select' ) ) ) { $ this -> normalizeCrs ( ) ; } elseif ( $ type == 'submit' && empty ( $ props [ 'label' ] ) && ! empty ( $ props [ 'attribs' ] [ 'value' ] ) ) { $ props [ 'label' ] = $ props [ 'attribs' ] [ 'value' ] ; } }
docstring: Set field properties
  
  @param array $props [description]
  
  @return void
docstring_tokens: Set field properties