/** * Set class properties and instantiate a widget object. * * @param $params * * @throws InvalidWidgetClassException */ 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); }
/** * Set class properties and instantiate a widget object. * * @param $params * * @throws InvalidWidgetClassException */ 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; $widgetClass = class_exists($this->widgetName) ? $this->widgetName : $this->config['defaultNamespace'] . '\\' . $this->widgetName; $widget = new $widgetClass($this->widgetConfig); if ($widget instanceof AbstractWidget === false) { throw new InvalidWidgetClassException(); } $this->widget = $widget; }