XPSPL\database\Processes::delete PHP Method

delete() public method

Deletes a process from the database.
public delete ( Process $process ) : boolean
$process XPSPL\Process \XPSPL\Process
return boolean
    public function delete(\XPSPL\Process $process)
    {
        if (XPSPL_DEBUG) {
            logger(XPSPL_LOG)->debug(sprintf('%s process delete from db %s (%d)', $process, $this, $this->count()));
        }
        if ($this->count() === 0) {
            return false;
        }
        // I dont like doing this in PHP ...
        // array_search needs to implement a deep search
        $this->reset();
        foreach ($this as $_key => $_node) {
            if ($_node instanceof Processes) {
                if ($_node->delete($process)) {
                    return true;
                }
            } else {
                if ($_node === $process) {
                    $this->offsetUnset($_key);
                    if (XPSPL_DEBUG) {
                        logger(XPSPL_LOG)->debug(sprintf('%s deleted from %s (%d)', $process, $this, $this->count()));
                    }
                    return true;
                }
            }
        }
        return false;
    }