/** * {@inherit} * * {@inherit} */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $config = $container->get('config'); $this->tableName = isset($config[self::KEY][self::KEY_TABLE_NAME]) ? $config[self::KEY][self::KEY_TABLE_NAME] : (isset($options[self::KEY_TABLE_NAME]) ? $options[self::KEY_TABLE_NAME] : self::TABLE_NAME); $this->db = $container->has('db') ? $container->get('db') : null; if (is_null($this->db)) { throw new QueueException('Can\'t create db Adapter'); } if ($container->has(TableManagerMysql::KEY_IN_CONFIG)) { $tableManager = $container->get(TableManagerMysql::KEY_IN_CONFIG); } else { $tableManager = new TableManagerMysql($this->db); } $hasPromiseStoreTable = $tableManager->hasTable($this->tableName); if (!$hasPromiseStoreTable) { $tableManager->rewriteTable($this->tableName, $this->promiseTableData); } $messagesStore = $container->has(Message\Factory\StoreFactory::KEY) ? $container->get(Message\Factory\StoreFactory::KEY) : null; if (is_null($messagesStore)) { throw new QueueException('Can\'t create Messages Store'); } $promisesStore = $container->has(Promise\Factory\StoreFactory::KEY) ? $container->get(Promise\Factory\StoreFactory::KEY) : null; if (is_null($promisesStore)) { throw new QueueException('Can\'t create Promises Store'); } return new Store($this->tableName, $this->db, $messagesStore, $promisesStore); }
public function __invoke(ContainerInterface $container, $name, $requestedName) { $config = $container->get('config'); $serviceConfig = $config[self::KEY_DATASTORE][self::KEY_ALL_NOTIFICATION]; if (isset($serviceConfig[self::KEY_TABLE_GATEWAY])) { if ($container->has($serviceConfig[self::KEY_TABLE_GATEWAY])) { $tableGateway = $container->get($serviceConfig[self::KEY_TABLE_GATEWAY]); } else { throw new DataStoreException('Can\'t create ' . $serviceConfig[self::KEY_TABLE_GATEWAY]); } } else { if (isset($serviceConfig[self::KEY_TABLE_NAME])) { $tableName = $serviceConfig[self::KEY_TABLE_NAME]; $dbServiceName = isset($serviceConfig[self::KEY_DB_ADAPTER]) ? $serviceConfig[self::KEY_DB_ADAPTER] : 'db'; $db = $container->has($dbServiceName) ? $container->get($dbServiceName) : null; /*if ($container->has('TableManagerMysql')) { $tableManager = $container->get('TableManagerMysql'); } else {*/ $tableManager = new TableManagerMysql($db); /*}*/ $hasTable = $tableManager->hasTable($tableName); if (!$hasTable) { $tableManager->rewriteTable($tableName, $this->tablePreferenceTableData); } $tableGateway = new TableGateway($tableName, $db); } else { throw new DataStoreException('There is not table name for ' . self::KEY_ALL_NOTIFICATION . 'in config \'dataStore\''); } } return new DbTable($tableGateway); }
public function __invoke(ContainerInterface $container, $reqName, $requestedName) { $config = $container->get('config'); $serviceConfig = $config[AbstractDataStoreFactory::KEY_DATASTORE][$requestedName]; if (isset($serviceConfig[DbTableAbstractFactory::KEY_TABLE_GATEWAY])) { if ($container->has($serviceConfig[DbTableAbstractFactory::KEY_TABLE_GATEWAY])) { $tableGateway = $container->get($serviceConfig[DbTableAbstractFactory::KEY_TABLE_GATEWAY]); } else { throw new DataStoreException('Can\'t create ' . $serviceConfig[DbTableAbstractFactory::KEY_TABLE_GATEWAY]); } } else { if (isset($serviceConfig[DbTableAbstractFactory::KEY_TABLE_NAME])) { $tableName = $serviceConfig[DbTableAbstractFactory::KEY_TABLE_NAME]; $dbServiceName = isset($serviceConfig[DbTableAbstractFactory::KEY_DB_ADAPTER]) ? $serviceConfig[DbTableAbstractFactory::KEY_DB_ADAPTER] : 'db'; $db = $container->has($dbServiceName) ? $container->get($dbServiceName) : null; if ($container->has('TableManagerMysql')) { $tableManager = $container->get('TableManagerMysql'); } else { $tableManager = new TableManagerMysql($db); } $hasTable = $tableManager->hasTable($tableName); if (!$hasTable) { $tableManager->rewriteTable($tableName, $this->tablePreferenceTableData); } $tableGateway = new TableGateway($tableName, $db); } else { throw new DataStoreException('There is not table name for ' . $requestedName . 'in config \'dataStore\''); } } $class = (isset($serviceConfig[AbstractFactoryAbstract::KEY_CLASS]) and is_a($serviceConfig[AbstractFactoryAbstract::KEY_CLASS], DbTable::class, true)) ? $serviceConfig[AbstractFactoryAbstract::KEY_CLASS] : DbTable::class; return new $class($tableGateway); }
public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $config = $container->get('config'); $tableName = isset($config[self::KEY][self::KEY_TABLE_NAME]) ? $config[self::KEY][self::KEY_TABLE_NAME] : (isset($options[self::KEY_TABLE_NAME]) ? $options[self::KEY_TABLE_NAME] : self::TABLE_NAME); $db = $container->has('db') ? $container->get('db') : null; if (is_null($db)) { throw new UnexpectedValueException('Can\'t create db Adapter'); } if ($container->has(TableManagerMysql::KEY_IN_CONFIG)) { $tableManager = $container->get(TableManagerMysql::KEY_IN_CONFIG); } else { $tableManager = new TableManagerMysql($db); } $hasPromiseStoreTable = $tableManager->hasTable($tableName); if (!$hasPromiseStoreTable) { $tableManager->rewriteTable($tableName, $this->taskStoreData); } return new Store($tableName, $db); }
/** * {@inherit} * * {@inherit} */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { $this->db = $container->has('db') ? $container->get('db') : null; if (is_null($this->db)) { throw new DataStoreException('Can\'t create Zend\\Db\\TableGateway\\TableGateway for ' . self::TABLE_NAME); } $tableManager = new TableManagerMysql($this->db, $this->tableConfig); // $hasTable = $tableManager->hasTable(self::TABLE_NAME); // if (!$hasTable) { if (!$tableManager->hasTable(self::TABLE_NAME)) { $tableManager->createTable(self::TABLE_NAME, self::TABLE_NAME); } $tableGateway = new TableGateway(self::TABLE_NAME, $this->db); $this->dataStore = new DbTable($tableGateway); // // Fill table using DbTable DataStore interface // if (!$hasTable) { // $this->fillTable($container); // } return $this->dataStore; }
public function testStoreFactory__invoke__TableNameFromConfig() { global $testCase; $testCase = 'table_for_test'; $this->container = (include './config/container.php'); $this->object = new StoreFactory(); $this->tableManagerMysql = $this->container->get(TableManagerMysql::KEY_IN_CONFIG); // if tables is absent $this->tableName = StoreFactory::TABLE_NAME . '_test'; $this->tableManagerMysql->deleteTable($this->tableName); $this->assertFalse($this->tableManagerMysql->hasTable($this->tableName)); /* @var $store Store */ $store = $this->container->get(StoreFactory::KEY); $this->assertInstanceOf(Store::class, $store); // if tables is present $this->assertTrue($this->tableManagerMysql->hasTable($this->tableName)); $store = $this->container->get(StoreFactory::KEY); $this->assertInstanceOf(Store::class, $store); $this->tableManagerMysql->deleteTable($this->tableName); $testCase = 'default'; }