/** * Dequeuet an URL * * @param string $name queue name, one of self::QUEUE_ constants * * @return string|null null if empty queue, else URL * * @throws \Exception if queue name is incorrect */ public function get($name) { $this->checkName($name); // Get row with minimal id $row = ORM::for_table(self::TABLE)->select_many('id', 'url')->where('name', $name)->order_by_asc('id')->find_one(); if (!$row) { return null; } // Store and remove for the DB $url = $row->url; $row->delete(); return $url; }