code: public static function begin($config = [])
      {
          $config['class'] = get_called_class();
          /* @var $widget Widget */
          $widget = Yii::createObject($config);
          self::$stack[] = $widget;
  
          return $widget;
      }
docs: Begins a widget.
  This method creates an instance of the calling class. It will apply the configuration
  to the created instance. A matching [[end()]] call should be called later.
  As some widgets may use output buffering, the [[end()]] call should be made in the same view
  to avoid breaking the nesting of output buffers.
  @param array $config name-value pairs that will be used to initialize the object properties
  @return static the newly created widget instance
  @see end()