/** * Method to get AssetManager. * * @param string $option The option name to get AssetManager. * * @return AssetManager The AssetManager object. */ public static function getAsset($option = 'windwalker') { if (!empty(static::$assets[$option])) { return static::$assets[$option]; } return static::$assets[$option] = AssetManager::getInstance($option); }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return Container Returns itself to support chaining. */ public function register(Container $container) { $name = $this->name; // Component $container->alias('component', ucfirst($name) . 'Component')->share(ucfirst($name) . 'Component', $this->component); // ControllerResolver $resolverClass = '\\Windwalker\\Controller\\Resolver\\ControllerResolver'; $container->alias('controller.resolver', $resolverClass)->share($resolverClass, function ($container) use($resolverClass) { return new $resolverClass($container->get('app'), $container); }); // Asset Helper $container->share('helper.asset', function ($container) use($name) { $asset = AssetManager::getInstance('com_' . strtolower($name)); $asset->setContainer($container); return $asset; }); }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return Container Returns itself to support chaining. */ public function register(Container $container) { // Global Config $container->share('joomla.config', array('JFactory', 'getConfig')); // Windwalker Config $container->share('windwalker.config', array($this, 'loadConfig')); // Database $this->share($container, 'db', 'JDatabaseDriver', array('JFactory', 'getDbo')); // Session // Global Config $container->share('session', function () { return \JFactory::getSession(); }); // Language $this->share($container, 'language', 'JLanguage', array('JFactory', 'getLanguage')); // Dispatcher $this->share($container, 'event.dispatcher', 'JEventDispatcher', array('JEventDispatcher', 'getInstance')); // Mailer $this->share($container, 'mailer', 'JMail', array('JFactory', 'getMailer')); // Date $this->set($container, 'date', 'JDate', function () { return DateHelper::getDate(); }); // Global $container->set('SplPriorityQueue', function () { return new \SplPriorityQueue(); }); // Asset $container->share('helper.asset', function () { return \Windwalker\Asset\AssetManager::getInstance(); }); // Relation $container->share('relation.container', function () { return new RelationContainer(); }); // Detect deferent environment if ($this->isConsole) { $container->registerServiceProvider(new CliProvider()); } else { $container->registerServiceProvider(new WebProvider()); } }
/** * getAsset * * @param string $name * * @return AssetManager */ public static function getAsset($name = 'windwalker') { return AssetManager::getInstance($name); }