Skip to content

Commit d2c7597

Browse files
committed
Merge branch '6.1' into 6.2
* 6.1: [PropertyInfo] Add PhpStan extractor to PropertyInfo available extractors Adjust variable name
2 parents 0d99409 + 693437e commit d2c7597

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

components/property_info.rst

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,41 @@ library is present::
411411
$phpDocExtractor->getShortDescription($class, $property);
412412
$phpDocExtractor->getLongDescription($class, $property);
413413

414+
PhpStanExtractor
415+
~~~~~~~~~~~~~~~~
416+
417+
.. note::
418+
419+
This extractor depends on the `phpstan/phpdoc-parser`_ and
420+
`phpdocumentor/reflection-docblock`_ libraries.
421+
422+
This extractor fetches information thanks to the PHPStan parser. It gathers
423+
information from annotations of properties and methods, such as ``@var``,
424+
``@param`` or ``@return``::
425+
426+
// src/Domain/Foo.php
427+
class Foo
428+
{
429+
private $bar;
430+
431+
/**
432+
* @param string $bar
433+
*/
434+
public function __construct($bar) {
435+
$this->bar = $bar;
436+
}
437+
}
438+
439+
// Extraction.php
440+
use Symfony\Component\PropertyInfo\Extractor\PhpStanExtractor;
441+
442+
$phpStanExtractor = new PhpStanExtractor();
443+
$phpStanExtractor->getTypesFromConstructor(Foo::class, 'bar');
444+
445+
.. versionadded:: 6.1
446+
447+
The ``PhpStanExtractor`` was introduced in Symfony 6.1.
448+
414449
SerializerExtractor
415450
~~~~~~~~~~~~~~~~~~~
416451

@@ -436,7 +471,7 @@ with the ``property_info`` service in the Symfony Framework::
436471

437472
// the `serializer_groups` option must be configured (may be set to null)
438473
$serializerExtractor->getProperties($class, ['serializer_groups' => ['mygroup']]);
439-
474+
440475
If ``serializer_groups`` is set to ``null``, serializer groups metadata won't be
441476
checked but you will get only the properties considered by the Serializer
442477
Component (notably the ``@Ignore`` annotation is taken into account).
@@ -497,6 +532,7 @@ service by defining it as a service with one or more of the following
497532

498533
.. _`phpDocumentor Reflection`: https://github.com/phpDocumentor/ReflectionDocBlock
499534
.. _`phpdocumentor/reflection-docblock`: https://packagist.org/packages/phpdocumentor/reflection-docblock
535+
.. _`phpstan/phpdoc-parser`: https://packagist.org/packages/phpstan/phpdoc-parser
500536
.. _`Doctrine ORM`: https://www.doctrine-project.org/projects/orm.html
501537
.. _`symfony/serializer`: https://packagist.org/packages/symfony/serializer
502538
.. _`symfony/doctrine-bridge`: https://packagist.org/packages/symfony/doctrine-bridge

0 commit comments

Comments
 (0)