public function generateNewId($table)
    {
        if (!isset($this->idCounterByTable[$table])) {
            $this->idCounterByTable[$table] = $this->getSQLBuilder()->select($table)->field('id')->orderDesc('id')->limit(0, 1)->fetchResult();
        }

        for ($i = 0; $i < 50; $i++) {
            $this->idCounterByTable[$table]++;

            if ($this->getCache()) {
                $key = 'grace_id_gen_' . $table . '_' . strval($this->idCounterByTable[$table]);

                $isBusy = $this->getCache()->get($key);
                if ($isBusy === null) {
                    $this->getCache()->set($key, '1', 60);
                    return $this->idCounterByTable[$table];
                }
            } else {
                return $this->idCounterByTable[$table];
            }
        }

        throw new \OutOfBoundsException('Maximum number of cycles to generate new id has reached');
    }
public function generateNewId($table)
    {
        if (!isset($this->idCounterByTable[$table])) {
            $this->idCounterByTable[$table] = $this->getSQLBuilder()->select($table)->field('id')->orderDesc('id')->limit(0, 1)->fetchResult();
        }

        for ($i = 0; $i < 50; $i++) {
            $this->idCounterByTable[$table]++;

            if ($this->getCache()) {
                $key = 'grace_id_gen_' . $table . '_' . strval($this->idCounterByTable[$table]);

                $isBusy = $this->getCache()->get($key);
                if ($isBusy === null) {
                    $this->getCache()->set($key, '1', 60);
                    return $this->idCounterByTable[$table];
                }
            } else {
                return $this->idCounterByTable[$table];
            }
        }

        throw new \OutOfBoundsException('Maximum number of cycles to generate new id has reached');
    }
public function generateNewId ( $ table ) { if ( ! isset ( $ this -> idCounterByTable [ $ table ] ) ) { $ this -> idCounterByTable [ $ table ] = $ this -> getSQLBuilder ( ) -> select ( $ table ) -> field ( 'id' ) -> orderDesc ( 'id' ) -> limit ( 0 , 1 ) -> fetchResult ( ) ; } for ( $ i = 0 ; $ i < 50 ; $ i ++ ) { $ this -> idCounterByTable [ $ table ] ++ ; if ( $ this -> getCache ( ) ) { $ key = 'grace_id_gen_' . $ table . '_' . strval ( $ this -> idCounterByTable [ $ table ] ) ; $ isBusy = $ this -> getCache ( ) -> get ( $ key ) ; if ( $ isBusy === null ) { $ this -> getCache ( ) -> set ( $ key , '1' , 60 ) ; return $ this -> idCounterByTable [ $ table ] ; } } else { return $ this -> idCounterByTable [ $ table ] ; } } throw new \ OutOfBoundsException ( 'Maximum number of cycles to generate new id has reached' ) ; }
Generate new id for insert
@param string $table
@throws \OutOfBoundsException
@return mixed
Generate new id for insert