Example #1
0
 /**
  * 获取组件实例(此处获取的结果均为单例)
  *
  * @param string $name
  * @param string $provider
  *
  * @return object|\Closure
  */
 public function getter($name, $provider = null)
 {
     if (!isset(self::$components[$name])) {
         //添加组件组
         self::$components[$name] = self::$config->getComponentProvider($name);
         if (!isset(self::$components[$name])) {
             return null;
         }
     }
     //获取组件实例
     empty($provider) and $provider = self::$components[$name]['default_provider'];
     $component = self::$components[$name][$provider];
     if (is_string($component)) {
         $component = new $component(self::$app);
         self::$components[$name][$provider] = $component;
     }
     return $component;
 }