zendframework/zend-db

Allow Invokable Objects For `$where` parameters in AbstractTableGateway

Opened this issue · 1 comments

Currently, the $where parameter in AbstractTableGateway::select, AbstractTableGateway::update, and AbstractTableGateway::delete will accept Closures, but not invokable classes. It would be nice if it were possible expand the allowed parameters types to include invokable classes.

The following code should allow it. I was hoping to replace with is_callable($where), but that would return true for cases where $where couldn't be executed using $where($select);, e..g [ new\DateTime, 'format'].

if ($where instanceof \Closure || (is_object($where) && is_callable($where))) {
    $where($select);
} elseif ($where !== null) {
    $select->where($where);
}

This repository has been closed and moved to laminas/laminas-db; a new issue has been opened at laminas/laminas-db#63.