|
|
@ -5,6 +5,7 @@ namespace Darksparrow\AuxiliumSchemaBuilder\SchemaBuilder; |
|
|
|
use Darksparrow\AuxiliumSchemaBuilder\Exceptions\SchemaDocumentFieldNameUnsetException; |
|
|
|
use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocument; |
|
|
|
use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentField; |
|
|
|
use Darksparrow\AuxiliumSchemaBuilder\Utilities\URLHandling; |
|
|
|
use JetBrains\PhpStorm\NoReturn; |
|
|
|
use ReflectionClass; |
|
|
|
|
|
|
@ -105,6 +106,19 @@ class SchemaBuilder |
|
|
|
{ |
|
|
|
$propertySchema["@" . self::PascalCaseToSnakeCase(input: $key)] = $value; |
|
|
|
} |
|
|
|
elseif($key == "ValidSchemas") |
|
|
|
{ |
|
|
|
$propertySchema["@valid_schemas"] = []; |
|
|
|
$classNameRegex = '/^(\\\\?[A-Z][a-zA-Z0-9_]*)((\\\\[A-Z][a-zA-Z0-9_]*)*)$/'; |
|
|
|
$urlRegex = '/^https?:\/\/[^\s$.?#].[^\s]*$/i'; |
|
|
|
foreach($value as $validSchema) |
|
|
|
{ |
|
|
|
if (preg_match($classNameRegex, $validSchema)) |
|
|
|
$propertySchema["@valid_schemas"][] = URLHandling::GetURLForSchema($validSchema); |
|
|
|
elseif (preg_match($urlRegex, $validSchema)) |
|
|
|
$propertySchema["@valid_schemas"][] = $validSchema; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if($propertyName == "") |
|
|
|