framework/base/Widget.php
public static function begin($config = [])
    {
        $config['class'] = get_called_class();
        /* @var $widget Widget */
        $widget = Yii::createObject($config);
        self::$stack[] = $widget;

        return $widget;
    }
public static function begin($config = [])
    {
        $config['class'] = get_called_class();
        /* @var $widget Widget */
        $widget = Yii::createObject($config);
        self::$stack[] = $widget;

        return $widget;
    }
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()