/** * Метод добавляет фильтр запроса по не индексному полю. * * @param string $operation Операция сравнения. * @param string $column Поле, по которому происходит фильтрация. * @param mixed $value Значение с которым производится сравнение. * @return Ext_HandlerSocket_Index_Query Инстанс класса для реализации текучего интерфейса. * @throws Ext_HandlerSocket_Index_Exception Будет выброшено, если передана неверная операция сравнения. */ public function filter($operation, $column, $value) { if (!Ext_HandlerSocket_AdapterAbstract::isValidOperation($operation)) { throw new Ext_HandlerSocket_Index_Exception("Invalid operation passed '{$operation}'.", Ext_HandlerSocket_Index_Exception::INVALID_OPERATION); } $this->_filter[] = array($operation, $column, $value); return $this; }
public function delete(array $query, $limit = 1, $offset = 0, array $options = array()) { if (!empty($query)) { $queryKeys = array_keys($query); if (!Ext_HandlerSocket_AdapterAbstract::isValidOperation($queryKeys[0])) { throw new Ext_HandlerSocket_Adapter_Index_Exception("Invalid query operator provided {$queryKeys[0]}.", Ext_HandlerSocket_Adapter_Index_Exception::INVALID_QUERY); } } else { $query = array(); } if ($limit < 1) { throw new Ext_HandlerSocket_Adapter_Index_Exception("Invalid limit provided. Should be positive integer, but {$limit} provided.", Ext_HandlerSocket_Adapter_Index_Exception::INVALID_LIMIT); } if ($offset < 0) { throw new Ext_HandlerSocket_Adapter_Index_Exception("Invalid offset provided. Should be non negative integer, but {$offset} provided.", Ext_HandlerSocket_Adapter_Index_Exception::INVALID_OFFSET); } return $this->_getDriverIndex()->delete($query, array($limit, $offset), $options); }
/** * @test */ public function isValidOperationCheckAll() { $this->assertTrue(Ext_HandlerSocket_AdapterAbstract::isValidOperation('=')); $this->assertTrue(Ext_HandlerSocket_AdapterAbstract::isValidOperation('>')); $this->assertTrue(Ext_HandlerSocket_AdapterAbstract::isValidOperation('<')); $this->assertTrue(Ext_HandlerSocket_AdapterAbstract::isValidOperation('<=')); $this->assertTrue(Ext_HandlerSocket_AdapterAbstract::isValidOperation('>=')); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation('!=')); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation('<>')); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation(array())); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation($this)); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation('=test')); $this->assertFalse(Ext_HandlerSocket_AdapterAbstract::isValidOperation('= test')); }