/** * Remove widgets if their is unused. * * @param array $widgets Widgets list. * * @return void */ protected function _removeUnusedWidgets($widgets) { // Get widgets from databases. print ConsoleUtil::headLine('Checking unused widgets...'); foreach (Widget::find() as $widget) { if (!in_array($widget->name, $widgets)) { $this->_info('Removing unused widget: ' . $widget->name . PHP_EOL); $widget->delete(); } } print PHP_EOL; }
/** * Prepare widgets metadata for Engine. * * @param DI $di Dependency injection. * * @return void */ protected function _initWidgets(DI $di) { if ($di->get('app')->isConsole()) { return; } $cache = $di->get('cacheData'); $widgets = $cache->get(System::CACHE_KEY_WIDGETS_METADATA); if ($widgets === null) { $widgets = []; foreach (Widget::find() as $object) { $widgets[] = [$object->id, $object->getKey(), $object]; } $cache->save(System::CACHE_KEY_WIDGETS_METADATA, $widgets, 0); // Unlimited. } $di->get('widgets')->addWidgets($widgets); }