diff --git a/Console/Descriptor/JsonDescriptor.php b/Console/Descriptor/JsonDescriptor.php index 44fae86bc..53cb18910 100644 --- a/Console/Descriptor/JsonDescriptor.php +++ b/Console/Descriptor/JsonDescriptor.php @@ -220,7 +220,7 @@ private function getContainerDefinitionData(Definition $definition, bool $omitTa 'autoconfigure' => $definition->isAutoconfigured(), ]; - if ('' !== $classDescription = $this->getClassDescription($definition->getClass())) { + if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) { $data['description'] = $classDescription; } diff --git a/Console/Descriptor/MarkdownDescriptor.php b/Console/Descriptor/MarkdownDescriptor.php index 56e11b07f..8d6e3bddc 100644 --- a/Console/Descriptor/MarkdownDescriptor.php +++ b/Console/Descriptor/MarkdownDescriptor.php @@ -183,7 +183,7 @@ protected function describeContainerDefinition(Definition $definition, array $op { $output = ''; - if ('' !== $classDescription = $this->getClassDescription($definition->getClass())) { + if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) { $output .= '- Description: `'.$classDescription.'`'."\n"; } diff --git a/Console/Descriptor/TextDescriptor.php b/Console/Descriptor/TextDescriptor.php index c0ec5e412..073920216 100644 --- a/Console/Descriptor/TextDescriptor.php +++ b/Console/Descriptor/TextDescriptor.php @@ -255,7 +255,7 @@ protected function describeContainerDefinition(Definition $definition, array $op $options['output']->title(sprintf('Information for Service "%s"', $options['id'])); } - if ('' !== $classDescription = $this->getClassDescription($definition->getClass())) { + if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) { $options['output']->text($classDescription."\n"); } diff --git a/Console/Descriptor/XmlDescriptor.php b/Console/Descriptor/XmlDescriptor.php index 3e66b05d0..d35f5c609 100644 --- a/Console/Descriptor/XmlDescriptor.php +++ b/Console/Descriptor/XmlDescriptor.php @@ -304,7 +304,7 @@ private function getContainerDefinitionDocument(Definition $definition, string $ $serviceXML->setAttribute('id', $id); } - if ('' !== $classDescription = $this->getClassDescription($definition->getClass())) { + if ('' !== $classDescription = $this->getClassDescription((string) $definition->getClass())) { $serviceXML->appendChild($descriptionXML = $dom->createElement('description')); $descriptionXML->appendChild($dom->createCDATASection($classDescription)); } diff --git a/Tests/Console/Descriptor/ObjectsProvider.php b/Tests/Console/Descriptor/ObjectsProvider.php index caafff684..a2b8409e8 100644 --- a/Tests/Console/Descriptor/ObjectsProvider.php +++ b/Tests/Console/Descriptor/ObjectsProvider.php @@ -139,6 +139,7 @@ public static function getContainerDefinitions() ->addTag('tag2') ->addMethodCall('setMailer', [new Reference('mailer')]) ->setFactory([new Reference('factory.service'), 'get']), + 'definition_without_class' => new Definition(), ]; } diff --git a/Tests/Fixtures/Descriptor/builder_1_arguments.json b/Tests/Fixtures/Descriptor/builder_1_arguments.json index 959b24b3f..e07b13743 100644 --- a/Tests/Fixtures/Descriptor/builder_1_arguments.json +++ b/Tests/Fixtures/Descriptor/builder_1_arguments.json @@ -67,6 +67,19 @@ "factory_method": "get", "tags": [] }, + "definition_without_class": { + "class": "", + "public": false, + "synthetic": false, + "lazy": false, + "shared": true, + "abstract": false, + "autowire": false, + "autoconfigure": false, + "arguments": [], + "file": null, + "tags": [] + }, "service_container": { "class": "Symfony\\Component\\DependencyInjection\\ContainerInterface", "public": true, diff --git a/Tests/Fixtures/Descriptor/builder_1_arguments.md b/Tests/Fixtures/Descriptor/builder_1_arguments.md index efdc188d4..08676b31d 100644 --- a/Tests/Fixtures/Descriptor/builder_1_arguments.md +++ b/Tests/Fixtures/Descriptor/builder_1_arguments.md @@ -18,6 +18,18 @@ Definitions - Factory Class: `Full\Qualified\FactoryClass` - Factory Method: `get` +### definition_without_class + +- Class: `` +- Public: no +- Synthetic: no +- Lazy: no +- Shared: yes +- Abstract: no +- Autowired: no +- Autoconfigured: no +- Arguments: no + ### service_container - Description: `ContainerInterface is the interface implemented by service container classes.` diff --git a/Tests/Fixtures/Descriptor/builder_1_arguments.txt b/Tests/Fixtures/Descriptor/builder_1_arguments.txt index 5ab36e2eb..74166a387 100644 --- a/Tests/Fixtures/Descriptor/builder_1_arguments.txt +++ b/Tests/Fixtures/Descriptor/builder_1_arguments.txt @@ -2,11 +2,12 @@ Symfony Container Services ========================== - ------------------- ---------------------------------------------------------- -  Service ID   Class name  - ------------------- ---------------------------------------------------------- - alias_1 alias for "service_1" - definition_1 Full\Qualified\Class1 - service_container Symfony\Component\DependencyInjection\ContainerInterface - ------------------- ---------------------------------------------------------- + -------------------------- ---------------------------------------------------------- +  Service ID   Class name  + -------------------------- ---------------------------------------------------------- + alias_1 alias for "service_1" + definition_1 Full\Qualified\Class1 + definition_without_class + service_container Symfony\Component\DependencyInjection\ContainerInterface + -------------------------- ---------------------------------------------------------- diff --git a/Tests/Fixtures/Descriptor/builder_1_arguments.xml b/Tests/Fixtures/Descriptor/builder_1_arguments.xml index 0a6cfb44a..061bb5d6e 100644 --- a/Tests/Fixtures/Descriptor/builder_1_arguments.xml +++ b/Tests/Fixtures/Descriptor/builder_1_arguments.xml @@ -23,6 +23,7 @@ + diff --git a/Tests/Fixtures/Descriptor/builder_1_public.json b/Tests/Fixtures/Descriptor/builder_1_public.json index d96cf5995..49e18b886 100644 --- a/Tests/Fixtures/Descriptor/builder_1_public.json +++ b/Tests/Fixtures/Descriptor/builder_1_public.json @@ -14,6 +14,18 @@ "factory_method": "get", "tags": [] }, + "definition_without_class": { + "class": "", + "public": false, + "synthetic": false, + "lazy": false, + "shared": true, + "abstract": false, + "autowire": false, + "autoconfigure": false, + "file": null, + "tags": [] + }, "service_container": { "class": "Symfony\\Component\\DependencyInjection\\ContainerInterface", "public": true, diff --git a/Tests/Fixtures/Descriptor/builder_1_public.md b/Tests/Fixtures/Descriptor/builder_1_public.md index cf8aec87e..be23f839b 100644 --- a/Tests/Fixtures/Descriptor/builder_1_public.md +++ b/Tests/Fixtures/Descriptor/builder_1_public.md @@ -17,6 +17,17 @@ Definitions - Factory Class: `Full\Qualified\FactoryClass` - Factory Method: `get` +### definition_without_class + +- Class: `` +- Public: no +- Synthetic: no +- Lazy: no +- Shared: yes +- Abstract: no +- Autowired: no +- Autoconfigured: no + ### service_container - Description: `ContainerInterface is the interface implemented by service container classes.` diff --git a/Tests/Fixtures/Descriptor/builder_1_public.txt b/Tests/Fixtures/Descriptor/builder_1_public.txt index 5ab36e2eb..74166a387 100644 --- a/Tests/Fixtures/Descriptor/builder_1_public.txt +++ b/Tests/Fixtures/Descriptor/builder_1_public.txt @@ -2,11 +2,12 @@ Symfony Container Services ========================== - ------------------- ---------------------------------------------------------- -  Service ID   Class name  - ------------------- ---------------------------------------------------------- - alias_1 alias for "service_1" - definition_1 Full\Qualified\Class1 - service_container Symfony\Component\DependencyInjection\ContainerInterface - ------------------- ---------------------------------------------------------- + -------------------------- ---------------------------------------------------------- +  Service ID   Class name  + -------------------------- ---------------------------------------------------------- + alias_1 alias for "service_1" + definition_1 Full\Qualified\Class1 + definition_without_class + service_container Symfony\Component\DependencyInjection\ContainerInterface + -------------------------- ---------------------------------------------------------- diff --git a/Tests/Fixtures/Descriptor/builder_1_public.xml b/Tests/Fixtures/Descriptor/builder_1_public.xml index b6f630271..05f83391f 100644 --- a/Tests/Fixtures/Descriptor/builder_1_public.xml +++ b/Tests/Fixtures/Descriptor/builder_1_public.xml @@ -4,6 +4,7 @@ + diff --git a/Tests/Fixtures/Descriptor/definition_arguments_without_class.json b/Tests/Fixtures/Descriptor/definition_arguments_without_class.json new file mode 100644 index 000000000..90a6b5dec --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_arguments_without_class.json @@ -0,0 +1,13 @@ +{ + "class": "", + "public": false, + "synthetic": false, + "lazy": false, + "shared": true, + "abstract": false, + "autowire": false, + "autoconfigure": false, + "arguments": [], + "file": null, + "tags": [] +} diff --git a/Tests/Fixtures/Descriptor/definition_arguments_without_class.md b/Tests/Fixtures/Descriptor/definition_arguments_without_class.md new file mode 100644 index 000000000..217c965b6 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_arguments_without_class.md @@ -0,0 +1,9 @@ +- Class: `` +- Public: no +- Synthetic: no +- Lazy: no +- Shared: yes +- Abstract: no +- Autowired: no +- Autoconfigured: no +- Arguments: no diff --git a/Tests/Fixtures/Descriptor/definition_arguments_without_class.txt b/Tests/Fixtures/Descriptor/definition_arguments_without_class.txt new file mode 100644 index 000000000..ed4957903 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_arguments_without_class.txt @@ -0,0 +1,15 @@ + ---------------- ------- +  Option   Value  + ---------------- ------- + Service ID - + Class - + Tags - + Public no + Synthetic no + Lazy no + Shared yes + Abstract no + Autowired no + Autoconfigured no + ---------------- ------- + diff --git a/Tests/Fixtures/Descriptor/definition_arguments_without_class.xml b/Tests/Fixtures/Descriptor/definition_arguments_without_class.xml new file mode 100644 index 000000000..ee6df8928 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_arguments_without_class.xml @@ -0,0 +1,2 @@ + + diff --git a/Tests/Fixtures/Descriptor/definition_without_class.json b/Tests/Fixtures/Descriptor/definition_without_class.json new file mode 100644 index 000000000..eda84251b --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_without_class.json @@ -0,0 +1,12 @@ +{ + "class": "", + "public": false, + "synthetic": false, + "lazy": false, + "shared": true, + "abstract": false, + "autowire": false, + "autoconfigure": false, + "file": null, + "tags": [] +} diff --git a/Tests/Fixtures/Descriptor/definition_without_class.md b/Tests/Fixtures/Descriptor/definition_without_class.md new file mode 100644 index 000000000..ca50a70f7 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_without_class.md @@ -0,0 +1,8 @@ +- Class: `` +- Public: no +- Synthetic: no +- Lazy: no +- Shared: yes +- Abstract: no +- Autowired: no +- Autoconfigured: no diff --git a/Tests/Fixtures/Descriptor/definition_without_class.txt b/Tests/Fixtures/Descriptor/definition_without_class.txt new file mode 100644 index 000000000..ed4957903 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_without_class.txt @@ -0,0 +1,15 @@ + ---------------- ------- +  Option   Value  + ---------------- ------- + Service ID - + Class - + Tags - + Public no + Synthetic no + Lazy no + Shared yes + Abstract no + Autowired no + Autoconfigured no + ---------------- ------- + diff --git a/Tests/Fixtures/Descriptor/definition_without_class.xml b/Tests/Fixtures/Descriptor/definition_without_class.xml new file mode 100644 index 000000000..ee6df8928 --- /dev/null +++ b/Tests/Fixtures/Descriptor/definition_without_class.xml @@ -0,0 +1,2 @@ + +