<?php declare(strict_types = 1); namespace MailPoet\Validator\Schema; if (!defined('ABSPATH')) exit; use MailPoet\Validator\Schema; // See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#oneof-and-anyof class OneOfSchema extends Schema { protected $schema = [ 'oneOf' => [], ]; /** @param Schema[] $schemas */ public function __construct( array $schemas ) { foreach ($schemas as $schema) { $this->schema['oneOf'][] = $schema->toArray(); } } public function nullable(): self { $null = ['type' => 'null']; $oneOf = $this->schema['oneOf']; $value = in_array($null, $oneOf, true) ? $oneOf : array_merge($oneOf, [$null]); return $this->updateSchemaProperty('oneOf', $value); } public function nonNullable(): self { $null = ['type' => 'null']; $oneOf = $this->schema['oneOf']; $value = array_filter($oneOf, function ($item) use ($null) { return $item !== $null; }); return $this->updateSchemaProperty('oneOf', $value); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
AnyOfSchema.php | File | 1.01 KB | 0644 |
|
ArraySchema.php | File | 765 B | 0644 |
|
BooleanSchema.php | File | 326 B | 0644 |
|
IntegerSchema.php | File | 1.07 KB | 0644 |
|
NullSchema.php | File | 320 B | 0644 |
|
NumberSchema.php | File | 1.08 KB | 0644 |
|
ObjectSchema.php | File | 1.65 KB | 0644 |
|
OneOfSchema.php | File | 1.01 KB | 0644 |
|
StringSchema.php | File | 1.48 KB | 0644 |
|
index.php | File | 6 B | 0644 |
|