示例#1
0
 /**
  * Constructor
  * 
  * @param string $table
  * @param Adapter $adapter
  * @param ResultSet $selectResultPrototype
  * @param Sql\Sql $selectResultPrototype
  */
 public function __construct($table, Adapter $adapter, ResultSet $selectResultPrototype = null, Sql\Sql $sql = null)
 {
     if (!(is_string($table) || $table instanceof Sql\TableIdentifier)) {
         throw new \InvalidArgumentException('Table name must be a string or an instance of Zend\\Db\\Sql\\TableIdentifier');
     }
     $this->table = $table;
     $this->adapter = $adapter;
     $this->setSelectResultPrototype($selectResultPrototype ?: new ResultSet());
     $this->sql = $sql ?: new Sql\Sql($this->adapter, $this->table);
     if ($this->sql->getTable() != $this->table) {
         throw new Exception\InvalidArgumentException('The table inside the provided Sql object must match the table of this TableGateway');
     }
 }
示例#2
0
 /**
  * @covers Zend\Db\Sql\Sql::__construct
  */
 public function test__construct()
 {
     $sql = new Sql($this->mockAdapter);
     $this->assertFalse($sql->hasTable());
     $sql->setTable('foo');
     $this->assertSame('foo', $sql->getTable());
     $this->setExpectedException('Zend\\Db\\Sql\\Exception\\InvalidArgumentException', 'Table must be a string or instance of TableIdentifier.');
     $sql->setTable(null);
 }
示例#3
0
 /**
  * Get a Zend\Db\Sql\Sql object
  *
  * @param null|string|TableIdentifier $table default: self::DEFAULT_TABLE
  * @return \Zend\Db\Sql\Sql
  */
 protected function sql($table = self::DEFAULT_TABLE)
 {
     if (self::DEFAULT_TABLE === $table) {
         if (null === $this->sql || $this->sql->getTable() != $this->getTableName()) {
             $this->sql = new Sql($this->getDbAdapter(), $this->getTableName());
         }
         return $this->sql;
     }
     return new Sql($this->getDbAdapter(), $table);
 }