original_string: public function box_start($classes = 'generalbox', $id = null, $attributes = array()) {
          $this->opencontainers->push('box', html_writer::end_tag('div'));
          $attributes['id'] = $id;
          $attributes['class'] = 'box py-3 ' . renderer_base::prepare_classes($classes);
          return html_writer::start_tag('div', $attributes);
      }
code: public function box_start($classes = 'generalbox', $id = null, $attributes = array()) {
          $this->opencontainers->push('box', html_writer::end_tag('div'));
          $attributes['id'] = $id;
          $attributes['class'] = 'box py-3 ' . renderer_base::prepare_classes($classes);
          return html_writer::start_tag('div', $attributes);
      }
code_tokens: public function box_start ( $ classes = 'generalbox' , $ id = null , $ attributes = array ( ) ) { $ this -> opencontainers -> push ( 'box' , html_writer :: end_tag ( 'div' ) ) ; $ attributes [ 'id' ] = $ id ; $ attributes [ 'class' ] = 'box py-3 ' . renderer_base :: prepare_classes ( $ classes ) ; return html_writer :: start_tag ( 'div' , $ attributes ) ; }
docstring: Outputs the opening section of a box.
  
  @param string $classes A space-separated list of CSS classes
  @param string $id An optional ID
  @param array $attributes An array of other attributes to give the box.
  @return string the HTML to output.
docstring_tokens: Outputs the opening section of a box .