source: spip-zone/_galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/ServiceProvider.php @ 75121

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

Pour l'écriture simplifiée des @var, en fait, c'est dans le template twig que ça doit se passer.

File size: 2.9 KB
Line 
1<?php
2/**
3 * autodoc
4 *
5 * Plugin d'ajout de fonctionnalités à phpDocumentor 2.0
6 */
7
8namespace autodoc\Plugin\Core;
9
10use Cilex\Application;
11use autodoc\Plugin\Core\Transformer\Writer;
12use autodoc\Plugin\Core\Transformer\Router;
13use autodoc\Plugin\Core\Compiler\Pass\DirectoryTreeBuilder;
14use autodoc\Plugin\Core\Compiler\Pass\ErrorsCollector;
15use autodoc\Plugin\Core\Compiler\Pass\MarkersCollector;
16use autodoc\Plugin\Core\Compiler\Pass\VcsLinkBuilder;
17use autodoc\Plugin\Core\Compiler\Pass\SpipTagsCollector;
18use autodoc\Plugin\Core\Compiler\Pass\ApisCollector;
19use autodoc\Plugin\Core\Compiler\Pass\VarTagImprovement;
20use autodoc\Plugin\Core\Compiler\Pass\Statistics;
21
22
23class ServiceProvider implements \Cilex\ServiceProviderInterface
24{
25    /**
26     * Registers services on the given app.
27     *
28     * @param Application $app An Application instance.
29     */
30    public function register(Application $app)
31    {
32
33        // 1) Charger les plugins Twig persos
34
35        // Un template Twig devrait pouvoir charger un plugin de Twig
36        // mais actuellement cela ne fonctionne pas.
37        // https://github.com/phpDocumentor/phpDocumentor2/issues/988
38
39        // Du coup, on surcharge le module Twig de phpDocumentor (temporairement)
40        // afin de faire activer nos plugins pour Twig.
41
42        // Voir : phpDocumentor/Plugin/Core/ServiceProvider
43
44        /** @var Translator $translator  */
45        $translator = $app['translator'];
46        $translator->addTranslationFolder(__DIR__ . DIRECTORY_SEPARATOR . 'Messages');
47
48        /** @var Collection $writerCollection */
49        $writerCollection = $app['transformer.writer.collection'];
50        $writerCollection['twig'] = new Writer\Twig();
51        $writerCollection['twig']->setTranslator($translator);
52
53        // 1b) Ajouter la possibilité de concaténer des fichiers et de nettoyer les vieilleries
54        $writerCollection['FileConcat']     = new Writer\FileConcat();
55        $writerCollection['FileCleaner']    = new Writer\FileCleaner();
56
57        // 2 Déclarer/surcharger les routes
58        $app['transformer.routing.queue']->insert(new Router\ZoraRouter(), 20000);
59
60
61        // 3 Compiler des informations supplémentaires, tel que l'arborescence des dossiers
62        $app['compiler']->insert(new DirectoryTreeBuilder(), DirectoryTreeBuilder::COMPILER_PRIORITY);
63        $app['compiler']->insert(new ErrorsCollector(),      ErrorsCollector::COMPILER_PRIORITY);
64        $app['compiler']->insert(new MarkersCollector(),     MarkersCollector::COMPILER_PRIORITY);
65        $app['compiler']->insert(new VcsLinkBuilder($app),   VcsLinkBuilder::COMPILER_PRIORITY);
66        $app['compiler']->insert(new SpipTagsCollector(),    SpipTagsCollector::COMPILER_PRIORITY);
67        $app['compiler']->insert(new ApisCollector(),        ApisCollector::COMPILER_PRIORITY);
68        $app['compiler']->insert(new Statistics(),           Statistics::COMPILER_PRIORITY);
69    }
70}
Note: See TracBrowser for help on using the repository browser.