- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
36 lines
723 B
PHP
36 lines
723 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\Database\Criteria\Expression;
|
|
|
|
use App\Framework\Database\Criteria\Criterion;
|
|
|
|
/**
|
|
* IN expression for matching against multiple values
|
|
*/
|
|
final readonly class InExpression implements Criterion
|
|
{
|
|
public function __construct(
|
|
public string $property,
|
|
public array $values
|
|
) {
|
|
}
|
|
|
|
public function toSql(): string
|
|
{
|
|
if (empty($this->values)) {
|
|
return '1=0'; // Always false
|
|
}
|
|
|
|
$placeholders = str_repeat('?,', count($this->values) - 1) . '?';
|
|
|
|
return "{$this->property} IN ({$placeholders})";
|
|
}
|
|
|
|
public function getParameters(): array
|
|
{
|
|
return $this->values;
|
|
}
|
|
}
|