diff --git a/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.schema.json b/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.schema.json new file mode 100644 index 0000000000000..728246cf52102 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.schema.json @@ -0,0 +1,154 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Symfony Parameters and Services Configuration", + "description": "Defines application parameters and services, including environment-specific conditionals.", + "type": "object", + "properties": { + "parameters": { + "type": "object", + "description": "Defines application-wide parameters.", + "patternProperties": { + "^.*$": { "$ref": "#/$defs/parameterValue" } + }, + "additionalProperties": false + }, + "services": { + "type": "object", + "description": "Defines your application services.", + "properties": { + "_defaults": { + "$ref": "#/$defs/serviceDefaults" + }, + "_instanceof": { + "type": "object", + "patternProperties": { + "^.+$": { "$ref": "#/$defs/serviceDefaults" } + }, + "additionalProperties": false + } + }, + "patternProperties": { + "^[a-zA-Z0-9_\\\\.]+$": { + "oneOf": [ + { "$ref": "#/$defs/serviceDefinition" }, + { "type": "null" }, + { "type": "string" } + ] + } + }, + "additionalProperties": false + } + }, + "patternProperties": { + "^when@.+$": { + "$ref": "#", + "description": "A container for parameters and services that are only loaded in a specific environment." + } + }, + "additionalProperties": false, + "$defs": { + "parameterValue": { + "oneOf": [ + { "type": "string" }, + { "type": "number" }, + { "type": "boolean" }, + { "type": "array" }, + { "type": "object" }, + { "type": "null" } + ] + }, + "serviceDefinition": { + "type": "object", + "properties": { + "class": { "type": "string" }, + "arguments": { "type": "array", "items": { "$ref": "#/$defs/parameterValue" } }, + "tags": { + "type": "array", + "items": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { "name": { "type": "string" } }, + "required": ["name"], + "additionalProperties": true + } + ] + } + }, + "calls": { + "type": "array", + "items": { + "type": "array", + "minItems": 1, + "items": [{ "type": "string" }], + "additionalItems": { "$ref": "#/$defs/parameterValue" } + } + }, + "factory": { + "oneOf": [ + { "type": "string" }, + { + "type": "array", + "items": [ { "type": "string" }, { "type": "string" } ], + "minItems": 2, + "maxItems": 2 + } + ] + }, + "properties": { "type": "object" }, + "configurator": { + "oneOf": [ + { "type": "string" }, + { + "type": "array", + "items": [ { "type": "string" }, { "type": "string" } ], + "minItems": 2, + "maxItems": 2 + } + ] + }, + "public": { "type": "boolean" }, + "shared": { "type": "boolean" }, + "abstract": { "type": "boolean" }, + "parent": { "type": "string" }, + "alias": { "type": "string" }, + "autowire": { "type": "boolean" }, + "autoconfigure": { "type": "boolean" }, + "deprecated": { + "oneOf": [ + { "type": "boolean" }, + { "type": "string" }, + { + "type": "object", + "properties": { + "message": { "type": "string" } + }, + "required": ["message"] + } + ] + }, + "decorates": { "type": "string" }, + "decoration_inner_name": { "type": "string" }, + "decoration_priority": { "type": "integer" } + }, + "additionalProperties": false + }, + "serviceDefaults": { + "type": "object", + "properties": { + "autowire": { "type": "boolean" }, + "autoconfigure": { "type": "boolean" }, + "public": { "type": "boolean" }, + "bind": { + "type": "object", + "patternProperties": { + "^\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$": { "$ref": "#/$defs/parameterValue" } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + } +} diff --git a/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.schema.json b/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.schema.json new file mode 100644 index 0000000000000..68d9fb7b0cc9a --- /dev/null +++ b/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.schema.json @@ -0,0 +1,114 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Symfony Routing Configuration", + "description": "Defines the application's URL routes, including imports and environment-specific conditionals.", + "type": "object", + "patternProperties": { + "^[a-zA-Z0-9_.-]+$": { + "oneOf": [ + { "$ref": "#/$defs/routeDefinition" }, + { "$ref": "#/$defs/routeImport" } + ] + }, + "^when@.+$": { + "$ref": "#", + "description": "A container for routes that are only loaded in a specific environment (e.g., 'when@dev')." + } + }, + "additionalProperties": false, + "$defs": { + "routeDefinition": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "The URL path for this route, which can contain parameters like /{id}." + }, + "controller": { + "type": "string", + "description": "The controller that handles the request, e.g., 'App\\Controller\\BlogController::show'." + }, + "methods": { + "description": "The HTTP method(s) this route matches.", + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "requirements": { + "type": "object", + "description": "Regular expression constraints for path parameters.", + "patternProperties": { "^.+$": { "type": "string" } } + }, + "defaults": { "type": "object" }, + "options": { "type": "object" }, + "host": { "type": "string" }, + "schemes": { + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "condition": { "type": "string" }, + "priority": { "type": "integer" }, + "locale": { "type": "string" }, + "format": { "type": "string" }, + "utf8": { "type": "boolean" } + }, + "required": ["path"], + "additionalProperties": false + }, + "routeImport": { + "type": "object", + "properties": { + "resource": { + "oneOf": [ + { "type": "string" }, + { + "type": "object", + "properties": { + "path": { "type": "string" }, + "namespace": { "type": "string" } + }, + "required": ["path"], + "additionalProperties": false + } + ], + "description": "Path to the resource (as a string) or an object with a 'path' and 'namespace'." + }, + "type": { + "type": "string", + "description": "The type of the resource (e.g., 'attribute', 'annotation', 'yaml')." + }, + "prefix": { + "oneOf": [ + { "type": "string" }, + { "type": "object", "patternProperties": { "^.+$": { "type": "string" } } } + ], + "description": "A URL prefix to apply to all routes from the imported resource." + }, + "name_prefix": { + "type": "string", + "description": "A name prefix to apply to all routes from the imported resource." + }, + "requirements": { "type": "object" }, + "defaults": { "type": "object" }, + "options": { "type": "object" }, + "host": { "type": "string" }, + "schemes": { + "oneOf": [ + { "type": "string" }, + { "type": "array", "items": { "type": "string" } } + ] + }, + "condition": { "type": "string" }, + "priority": { "type": "integer" }, + "locale": { "type": "string" }, + "format": { "type": "string" }, + "utf8": { "type": "boolean" } + }, + "required": ["resource"], + "additionalProperties": false + } + } +}
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: