zendframework / zend-db

Db component from Zend Framework
BSD 3-Clause "New" or "Revised" License
101 stars 122 forks source link

Allow Invokable Objects For `$where` parameters in AbstractTableGateway #270

Open baileylo opened 7 years ago

baileylo commented 7 years ago

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);
}
michalbundyra commented 4 years ago

This repository has been closed and moved to laminas/laminas-db; a new issue has been opened at https://github.com/laminas/laminas-db/issues/63.