Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve callable phpdocs #29

Merged
merged 4 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 35 additions & 35 deletions Database/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,14 @@ public function __construct($dbHost, $type, $table = null)
protected $_offset;

/**
* @var string
* @var bool
*
* @internal
*/
protected $_distinct = false;

/**
* @var string
* @var array{string, string}
*
* @internal
*/
Expand Down Expand Up @@ -610,15 +610,15 @@ public function set($set, $val = null, $bind = true)
* Can be used in two different ways, as where( field, value ) or as an array of
* conditions to use: where( array('fieldName', ...), array('value', ...) );
*
* @param string|string[]|callable $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|string[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
* @param string|string[]|\Closure($this): void $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|int|string[]|int[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
*
* @return $this
*
Expand Down Expand Up @@ -661,15 +661,15 @@ public function where($key, $value = null, $op = '=', $bind = true)
* Can be used in two different ways, as where( field, value ) or as an array of
* conditions to use: where( array('fieldName', ...), array('value', ...) );
*
* @param string|string[]|callable $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|string[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
* @param string|string[]|\Closure($this): void $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|int|string[]|int[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
*
* @return $this
*/
Expand All @@ -684,15 +684,15 @@ public function and_where($key, $value = null, $op = '=', $bind = true)
* Can be used in two different ways, as where( field, value ) or as an array of
* conditions to use: where( array('fieldName', ...), array('value', ...) );
*
* @param string|string[]|callable $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|string[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
* @param string|string[]|\Closure($this): void $key Single field name, or an array of field names.
* If given as a function (i.e. a closure), the function is called, passing the
* query itself in as the only parameter, so the function can add extra conditions
* with parentheses around the additional parameters.
* @param string|int|string[]|int[] $value Single field value, or an array of
* values. Can be null to search for `IS NULL` or `IS NOT NULL` (depending
* on the value of `$op` which should be `=` or `!=`.
* @param string $op Condition operator: <, >, = etc
* @param bool $bind Escape the value (true, default) or not (false).
*
* @return $this
*/
Expand Down Expand Up @@ -727,11 +727,11 @@ public function or_where($key, $value = null, $op = '=', $bind = true)
* define if a grouping bracket should be opened or closed in the query.
* This method is not prefer.
*
* @param bool|callable $inOut If callable it will create the group
* automatically and pass the query into the called function. For
* legacy operations use `true` to open brackets, `false` to close.
* @param string $op Conditional operator to use to join to the
* preceding condition. Default `AND`.
* @param bool|\Closure($this): void $inOut If callable it will create the group
* automatically and pass the query into the called function. For
* legacy operations use `true` to open brackets, `false` to close.
* @param string $op Conditional operator to use to join to the
* preceding condition. Default `AND`.
*
* @return $this
*
Expand Down Expand Up @@ -1252,7 +1252,7 @@ protected function _update()
* @internal
*
* @param string|array $where
* @param string $value
* @param string|int $value
* @param string $type
* @param string $op
* @param bool $bind
Expand Down
23 changes: 12 additions & 11 deletions Editor.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
namespace DataTables;

use DataTables;
use DataTables\Database\Query;
use DataTables\Editor\Field;
use DataTables\Editor\Join;

Expand Down Expand Up @@ -561,9 +562,9 @@ public function leftJoinRemove($_ = null)
* Add an event listener. The `Editor` class will trigger an number of
* events that some action can be taken on.
*
* @param string $name Event name
* @param callable $callback Callback function to execute when the event
* occurs
* @param string $name Event name
* @param callable($this, mixed, mixed, mixed, mixed, mixed): ?false $callback Callback function to execute when the event
* occurs
*
* @return $this
*/
Expand Down Expand Up @@ -859,9 +860,9 @@ public function validate(&$errors, $data)
* and remove actions performed from the client-side. Multiple validators
* can be added.
*
* @param callable $_ Function to execute when validating the input data.
* It is passed three parameters: 1. The editor instance, 2. The action
* and 3. The values.
* @param callable($this, self::ACTION_*, array): ?string $_ Function to execute when validating the input data.
* It is passed three parameters: 1. The editor instance, 2. The action
* and 3. The values.
*
* @return ($_ is null ? callable : $this) The validator function.
*/
Expand Down Expand Up @@ -890,9 +891,9 @@ public function validator($_ = null)
* undefined (since Editor expects the row to still be available, but the
* condition removes it from the result set).
*
* @param string|callable $key Single field name or a closure function
* @param string $value Single field value.
* @param string $op Condition operator: <, >, = etc
* @param string|\Closure(Query): void $key Single field name or a closure function
* @param string $value Single field value.
* @param string $op Condition operator: <, >, = etc
*
* @return ($key is null ? string[] : $this) Where condition array.
*/
Expand Down Expand Up @@ -2047,7 +2048,7 @@ private function _ssp_limit($query, $http)
private function _get_where($query)
{
for ($i = 0; $i < count($this->_where); ++$i) {
if (is_callable($this->_where[$i])) {
if ($this->_where[$i] instanceof \Closure) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the reason is Query::where does support only \Closure, so no BC break, actually it is a bugfix, as callable looking array might be regular where

$this->_where[$i]($query);
} else {
$query->where(
Expand Down Expand Up @@ -2220,7 +2221,7 @@ private function _insert_or_update_table($table, $values, $where = null)
for ($j = 0, $jen = count($this->_where); $j < $jen; ++$j) {
$cond = $this->_where[$j];

if (!is_callable($cond)) {
if (!$cond instanceof \Closure) {
// Make sure the value wasn't in the submitted data set,
// otherwise we would be overwriting it
if (!isset($set[$cond['key']])) {
Expand Down
Loading