Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
primogenial
/
plugins
/
mailpoet
/
lib
/
Validator
/
Schema
:
AnyOfSchema.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?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 AnyOfSchema extends Schema { protected $schema = [ 'anyOf' => [], ]; /** @param Schema[] $schemas */ public function __construct( array $schemas ) { foreach ($schemas as $schema) { $this->schema['anyOf'][] = $schema->toArray(); } } public function nullable(): self { $null = ['type' => 'null']; $anyOf = $this->schema['anyOf']; $value = in_array($null, $anyOf, true) ? $anyOf : array_merge($anyOf, [$null]); return $this->updateSchemaProperty('anyOf', $value); } public function nonNullable(): self { $null = ['type' => 'null']; $anyOf = $this->schema['anyOf']; $value = array_filter($anyOf, function ($item) use ($null) { return $item !== $null; }); return $this->updateSchemaProperty('anyOf', $value); } }