mirror of
https://github.com/Icinga/icingadb-web.git
synced 2026-04-15 21:59:47 -04:00
Ensure forward compatibility with ipl-orm by adding return types (#1340)
Add explicit return types to `ipl-orm`-derived methods to prepare for strict
typing. These additions are safe, as they only annotate existing methods that
previously lacked return type declarations.
(cherry picked from commit f8d4f92566)
This commit is contained in:
parent
6897a56c1b
commit
fb9c2b65fa
9 changed files with 32 additions and 20 deletions
|
|
@ -53,17 +53,17 @@ class Bitmask extends PropertyBehavior implements RewriteFilterBehavior
|
|||
return $bits;
|
||||
}
|
||||
|
||||
public function rewriteCondition(Condition $condition, $relation = null)
|
||||
public function rewriteCondition(Condition $condition, $relation = null): null
|
||||
{
|
||||
$column = $condition->metaData()->get('columnName');
|
||||
if (! isset($this->properties[$column])) {
|
||||
return;
|
||||
if ($column === null || ! isset($this->properties[$column])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$values = $condition->getValue();
|
||||
if (! is_array($values)) {
|
||||
if (is_int($values) || ctype_digit($values)) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$values = [$values];
|
||||
|
|
@ -79,5 +79,7 @@ class Bitmask extends PropertyBehavior implements RewriteFilterBehavior
|
|||
}
|
||||
|
||||
$condition->setColumn(sprintf('%s & %s', $condition->getColumn(), $bits));
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,14 +26,14 @@ class FlattenedObjectVars implements RewriteColumnBehavior, QueryAwareBehavior
|
|||
/** @var Query */
|
||||
protected $query;
|
||||
|
||||
public function setQuery(Query $query)
|
||||
public function setQuery(Query $query): static
|
||||
{
|
||||
$this->query = $query;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null)
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null): ?Filter\Condition
|
||||
{
|
||||
$column = $condition->metaData()->get('columnName');
|
||||
if ($column !== null) {
|
||||
|
|
@ -71,9 +71,11 @@ class FlattenedObjectVars implements RewriteColumnBehavior, QueryAwareBehavior
|
|||
|
||||
return $condition;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function rewriteColumn($column, $relation = null)
|
||||
public function rewriteColumn($column, ?string $relation = null): AliasedExpression
|
||||
{
|
||||
$subQuery = $this->query->createSubQuery(new CustomvarFlat(), $relation)
|
||||
->limit(1)
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class HasProblematicParent implements RewriteColumnBehavior, QueryAwareBehavior
|
|||
/** @var Query */
|
||||
protected $query;
|
||||
|
||||
public function setQuery(Query $query): self
|
||||
public function setQuery(Query $query): static
|
||||
{
|
||||
$this->query = $query;
|
||||
|
||||
|
|
@ -83,12 +83,14 @@ class HasProblematicParent implements RewriteColumnBehavior, QueryAwareBehavior
|
|||
{
|
||||
}
|
||||
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null)
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null): null
|
||||
{
|
||||
$column = substr($condition->getColumn(), strlen($relation ?? ''));
|
||||
|
||||
if ($this->isSelectableColumn($column)) {
|
||||
throw new InvalidColumnException($column, $this->query->getModel());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,11 +29,11 @@ class ReRoute implements RewriteFilterBehavior, RewritePathBehavior
|
|||
return $this->routes;
|
||||
}
|
||||
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null)
|
||||
public function rewriteCondition(Filter\Condition $condition, $relation = null): ?Filter\Rule
|
||||
{
|
||||
$remainingPath = $condition->metaData()->get('columnName', '');
|
||||
if (strpos($remainingPath, '.') === false) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
if (($path = $this->rewritePath($remainingPath, $relation)) !== null) {
|
||||
|
|
@ -63,6 +63,8 @@ class ReRoute implements RewriteFilterBehavior, RewritePathBehavior
|
|||
|
||||
return $filter;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function rewritePath(string $path, ?string $relation = null): ?string
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class CustomvarFlat extends Model
|
|||
'flatname_checksum'
|
||||
]));
|
||||
$behaviors->add(new class implements RewriteFilterBehavior {
|
||||
public function rewriteCondition(Condition $condition, $relation = null)
|
||||
public function rewriteCondition(Condition $condition, $relation = null): ?Filter\Chain
|
||||
{
|
||||
if ($condition->metaData()->has('requiresTransformation')) {
|
||||
/** @var string $columnName */
|
||||
|
|
@ -65,6 +65,8 @@ class CustomvarFlat extends Model
|
|||
|
||||
return Filter::all($nameFilter, $valueFilter);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use ipl\Orm\Behaviors;
|
|||
use ipl\Orm\Query;
|
||||
use ipl\Orm\Relations;
|
||||
use ipl\Orm\UnionModel;
|
||||
use ipl\Orm\UnionQuery;
|
||||
use ipl\Sql\Adapter\Pgsql;
|
||||
use ipl\Sql\Connection;
|
||||
use ipl\Sql\Expression;
|
||||
|
|
@ -38,7 +39,7 @@ use ipl\Sql\Select;
|
|||
*/
|
||||
class Hostgroupsummary extends UnionModel
|
||||
{
|
||||
public static function on(Connection $db)
|
||||
public static function on(Connection $db): UnionQuery
|
||||
{
|
||||
$q = parent::on($db);
|
||||
|
||||
|
|
@ -156,7 +157,7 @@ class Hostgroupsummary extends UnionModel
|
|||
return 'display_name';
|
||||
}
|
||||
|
||||
public function getUnions()
|
||||
public function getUnions(): array
|
||||
{
|
||||
$unions = [
|
||||
[
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use ipl\Orm\Behaviors;
|
|||
use ipl\Orm\Query;
|
||||
use ipl\Orm\Relations;
|
||||
use ipl\Orm\UnionModel;
|
||||
use ipl\Orm\UnionQuery;
|
||||
use ipl\Sql\Adapter\Pgsql;
|
||||
use ipl\Sql\Connection;
|
||||
use ipl\Sql\Expression;
|
||||
|
|
@ -33,7 +34,7 @@ use ipl\Sql\Select;
|
|||
*/
|
||||
class ServicegroupSummary extends UnionModel
|
||||
{
|
||||
public static function on(Connection $db)
|
||||
public static function on(Connection $db): UnionQuery
|
||||
{
|
||||
$q = parent::on($db);
|
||||
|
||||
|
|
@ -134,7 +135,7 @@ class ServicegroupSummary extends UnionModel
|
|||
return 'display_name';
|
||||
}
|
||||
|
||||
public function getUnions()
|
||||
public function getUnions(): array
|
||||
{
|
||||
$unions = [
|
||||
[
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
namespace Icinga\Module\Icingadb\Model\UnreachableParent;
|
||||
|
||||
use Generator;
|
||||
use Icinga\Module\Icingadb\Redis\VolatileStateResults;
|
||||
use Traversable;
|
||||
|
||||
class ResultSet extends VolatileStateResults
|
||||
{
|
||||
protected function yieldTraversable(Traversable $traversable)
|
||||
protected function yieldTraversable(Traversable $traversable): Generator
|
||||
{
|
||||
$knownIds = [];
|
||||
foreach ($traversable as $value) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class VolatileStateResults extends ResultSet
|
|||
/** @var bool Whether the model's ID should be contained in the results */
|
||||
protected bool $includeModelID = true;
|
||||
|
||||
public static function fromQuery(Query $query)
|
||||
public static function fromQuery(Query $query): static
|
||||
{
|
||||
$self = parent::fromQuery($query);
|
||||
$self->resolver = $query->getResolver();
|
||||
|
|
@ -76,8 +76,7 @@ class VolatileStateResults extends ResultSet
|
|||
return $this->redisUnavailable;
|
||||
}
|
||||
|
||||
#[\ReturnTypeWillChange]
|
||||
public function current()
|
||||
public function current(): mixed
|
||||
{
|
||||
if (! $this->redisUnavailable && ! $this->updatesApplied && ! $this->isCacheDisabled) {
|
||||
$this->rewind();
|
||||
|
|
|
|||
Loading…
Reference in a new issue