Ejemplo n.º 1
0
 /**
  * @param  $name
  *
  * @throws \Exception
  */
 public function __get($name)
 {
     if (property_exists($this, $name) && $this->{$name} !== null) {
         //处理自定义的属性或者获取已经注入的属性服务
         return $this->{$name};
     }
     if ($this->_di->has($name)) {
         //不然就去获取di中的属性
         $this->{$name} = $this->_di->get($name);
         return $this->{$name};
     }
     throw new \Exception("property {$name} is not defined in " . __CLASS__);
 }
Ejemplo n.º 2
0
 /**
  * @param Request $request
  * @return IController
  * @throws ApiException
  */
 public function create(Request $request)
 {
     $name = $this->getName($request);
     return $this->container->createService('controller.' . $name);
 }
Ejemplo n.º 3
0
 public function testKeys()
 {
     $diContainer = new DiContainer();
     $diContainer['foo'] = 123;
     $diContainer['bar'] = 123;
     $this->assertEquals(array('foo', 'bar'), $diContainer->keys());
 }
Ejemplo n.º 4
0
 public static function create()
 {
     $container = new DiContainer();
     $container->registerService('application', function (DiContainer $container) {
         return new \Eshopino\Api\Application($container->getService('requestFactory'), $container->getService('controllerFactory'), $container->getService('configuration'));
     });
     $container->registerService('requestFactory', function (DiContainer $container) {
         return new \Eshopino\Api\RequestFactory($container->getService('configuration'));
     });
     $container->registerService('controllerFactory', function (DiContainer $container) {
         return new \Eshopino\Api\ControllerFactory($container);
     });
     $container->registerService('controller.OrderCreate', function (DiContainer $container) {
         return new \Eshopino\Api\Controllers\OrderCreateController($container->getService('itemManager'), $container->getService('orderManager'), $container->getService('configuration'));
     });
     $container->registerService('controller.OrderStatus', function (DiContainer $container) {
         return new \Eshopino\Api\Controllers\OrderStatusController($container->getService('orderManager'));
     });
     $container->registerService('controller.ItemStatus', function (DiContainer $container) {
         return new \Eshopino\Api\Controllers\ItemStatusController($container->getService('itemManager'));
     });
     $container->registerService('configuration', function (DiContainer $container) {
         return new \Eshopino\Api\Configuration();
     });
     return $container;
 }
Ejemplo n.º 5
0
 /**
  * Get PDO object
  *
  * @return PDO|null
  */
 public static function getDb()
 {
     return DiContainer::build('db')->getConnection();
 }