source: spip-zone/_galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/Compiler/Pass/VarTagImprovement.php @ 75119

Last change on this file since 75119 was 75119, checked in by marcimat@…, 8 years ago

Permettre l'écriture simplifiée des documentations de propriétés de classe. On autorise :

/ @var bool $actionner Actionner l'élément */
private $actionner = false;

Qui est équivalent à :

/

  • Actionner l'élément
  • @var bool $actionner */

private $actionner = false;

File size: 1.6 KB
Line 
1<?php
2/**
3 * Améliorer (si on peut dire) la gestion des propriétés de classes.
4 *
5 * On permet des écritures plus courtes :
6 *
7 *     ```
8 *     @var type $nom Résumé
9 *     ```
10 *
11 * Équivalentes à :
12 *
13 *     ```
14 *     Résumé
15 *     
16 *     @var type $nom
17 *     ```
18 */
19
20namespace autodoc\Plugin\Core\Compiler\Pass;
21
22use phpDocumentor\Compiler\CompilerPassInterface;
23use phpDocumentor\Descriptor\Collection;
24use phpDocumentor\Descriptor\ProjectDescriptor;
25
26
27/**
28 * Autoriser @var type $name Summary pour définir le summary d'une propriété
29 */
30class VarTagImprovement implements CompilerPassInterface
31{
32    const COMPILER_PRIORITY = 8765;
33
34    /**
35     * {@inheritDoc}
36     */
37    public function getDescription()
38    {
39        return 'Allow property syntax : "@var type $name Summary"';
40    }
41
42    /**
43     * {@inheritDoc}
44     */
45    public function execute(ProjectDescriptor $project)
46    {
47        foreach (array('classes', 'interfaces', 'traits') as $type) {
48            foreach ($project->getIndexes()->get($type) as $collection) {
49                foreach ($collection->getProperties() as $property) {
50                    if (!$property->getSummary() and $vars = $property->getTags()->get('var')) {
51                        $name = '$' . $property->getName();
52                        foreach ($vars as $var) {
53                            if ($var->getVariableName() == $name) {
54                                $property->setSummary( $var->getDescription() );
55                            }
56                        }
57
58                    }
59                }
60            }
61        }
62    }
63}
Note: See TracBrowser for help on using the repository browser.