original_string: public function radio($fieldName, $options = [], array $attributes = [])
      {
          $attributes['options'] = $options;
          $attributes['idPrefix'] = $this->_idPrefix;
          $attributes = $this->_initInputField($fieldName, $attributes);
  
          $hiddenField = isset($attributes['hiddenField']) ? $attributes['hiddenField'] : true;
          unset($attributes['hiddenField']);
  
          $radio = $this->widget('radio', $attributes);
  
          $hidden = '';
          if ($hiddenField) {
              $hidden = $this->hidden($fieldName, [
                  'value' => $hiddenField === true ? '' : $hiddenField,
                  'form' => isset($attributes['form']) ? $attributes['form'] : null,
                  'name' => $attributes['name'],
              ]);
          }
  
          return $hidden . $radio;
      }
code: public function radio($fieldName, $options = [], array $attributes = [])
      {
          $attributes['options'] = $options;
          $attributes['idPrefix'] = $this->_idPrefix;
          $attributes = $this->_initInputField($fieldName, $attributes);
  
          $hiddenField = isset($attributes['hiddenField']) ? $attributes['hiddenField'] : true;
          unset($attributes['hiddenField']);
  
          $radio = $this->widget('radio', $attributes);
  
          $hidden = '';
          if ($hiddenField) {
              $hidden = $this->hidden($fieldName, [
                  'value' => $hiddenField === true ? '' : $hiddenField,
                  'form' => isset($attributes['form']) ? $attributes['form'] : null,
                  'name' => $attributes['name'],
              ]);
          }
  
          return $hidden . $radio;
      }
code_tokens: public function radio ( $ fieldName , $ options = [ ] , array $ attributes = [ ] ) { $ attributes [ 'options' ] = $ options ; $ attributes [ 'idPrefix' ] = $ this -> _idPrefix ; $ attributes = $ this -> _initInputField ( $ fieldName , $ attributes ) ; $ hiddenField = isset ( $ attributes [ 'hiddenField' ] ) ? $ attributes [ 'hiddenField' ] : true ; unset ( $ attributes [ 'hiddenField' ] ) ; $ radio = $ this -> widget ( 'radio' , $ attributes ) ; $ hidden = '' ; if ( $ hiddenField ) { $ hidden = $ this -> hidden ( $ fieldName , [ 'value' => $ hiddenField === true ? '' : $ hiddenField , 'form' => isset ( $ attributes [ 'form' ] ) ? $ attributes [ 'form' ] : null , 'name' => $ attributes [ 'name' ] , ] ) ; } return $ hidden . $ radio ; }
docstring: Creates a set of radio widgets.
  
  ### Attributes:
  
  - `value` - Indicates the value when this radio button is checked.
  - `label` - Either `false` to disable label around the widget or an array of attributes for
  the label tag. `selected` will be added to any classes e.g. `'class' => 'myclass'` where widget
  is checked
  - `hiddenField` - boolean to indicate if you want the results of radio() to include
  a hidden input with a value of ''. This is useful for creating radio sets that are non-continuous.
  - `disabled` - Set to `true` or `disabled` to disable all the radio buttons. Use an array of
  values to disable specific radio buttons.
  - `empty` - Set to `true` to create an input with the value '' as the first option. When `true`
  the radio label will be 'empty'. Set this option to a string to control the label value.
  
  @param string $fieldName Name of a field, like this "modelname.fieldname"
  @param array|\Traversable $options Radio button options array.
  @param array $attributes Array of attributes.
  @return string Completed radio widget set.
  @link https://book.cakephp.org/3.0/en/views/helpers/form.html#creating-radio-buttons
docstring_tokens: Creates a set of radio widgets .