Arrilot\Widgets\Factories\AbstractWidgetFactory::instantiateWidget PHP Method

instantiateWidget() protected method

Set class properties and instantiate a widget object.
protected instantiateWidget ( array $params = [] )
$params array
    protected function instantiateWidget(array $params = [])
    {
        WidgetId::increment();
        $this->widgetName = $this->parseFullWidgetNameFromString(array_shift($params));
        $this->widgetFullParams = $params;
        $this->widgetConfig = (array) array_shift($params);
        $this->widgetParams = $params;
        $rootNamespace = $this->app->config('laravel-widgets.default_namespace', $this->app->getNamespace() . 'Widgets');
        $fqcn = $rootNamespace . '\\' . $this->widgetName;
        $widgetClass = class_exists($fqcn) ? $fqcn : $this->widgetName;
        if (!is_subclass_of($widgetClass, 'Arrilot\\Widgets\\AbstractWidget')) {
            throw new InvalidWidgetClassException('Class "' . $widgetClass . '" must extend "Arrilot\\Widgets\\AbstractWidget" class');
        }
        $this->widget = new $widgetClass($this->widgetConfig);
    }