source: spip-zone/_plugins_/indexer/trunk/inc/indexer.php @ 82656

Last change on this file since 82656 was 82656, checked in by rastapopoulos@…, 7 years ago

Déplacer la liste des sources et son pipeline dans une fonction dédiée, ce qui permet de récupérer cette liste à plusieurs endroits différents.

Du coup on met aussi un static, comme ça si elle est appelée plusieurs fois dans le même hit, ça ne générera qu'une fois la liste et ses objets avec new.

File size: 1.3 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) return;
4
5// Constantes pour connexion à Sphinx
6defined('SPHINX_SERVER_HOST')   || define('SPHINX_SERVER_HOST', '127.0.0.1');
7defined('SPHINX_SERVER_PORT')   || define('SPHINX_SERVER_PORT', 9306);
8defined('SPHINX_DEFAULT_INDEX') || define('SPHINX_DEFAULT_INDEX', 'spip');
9
10// Charge les classes possibles de l'indexer
11require_once _DIR_PLUGIN_INDEXER . 'lib/Composer/Autoload/ClassLoader.php';
12
13$loader = new \Composer\Autoload\ClassLoader();
14
15// register classes with namespaces
16$loader->add('Indexer', _DIR_PLUGIN_INDEXER . 'lib');
17$loader->add('Sphinx',  _DIR_PLUGIN_INDEXER . 'lib');
18$loader->addPsr4('Spip\\Indexer\\Sources\\',  _DIR_PLUGIN_INDEXER . 'Sources');
19
20
21$loader->register();
22
23/**
24 * Renvoyer les sources de données disponibles dans le site
25 *
26 * Un pipeline "indexer_sources" est appelée avec la liste par défaut, permettant de retirer ou d'ajouter des sources.
27 *
28 * @pipeline_appel insexer_sources
29 * @return Sources Retourne un objet Sources listant les sources enregistrées avec la méthode register()
30 */
31function indexer_sources(){
32        static $sources = null;
33       
34        if (is_null($sources)){
35                $sources = new Indexer\Sources\Sources();
36                $sources->register('articles', new Spip\Indexer\Sources\Articles());
37                $sources = pipeline('indexer_sources', $sources);
38        }
39       
40        return $sources;
41}
Note: See TracBrowser for help on using the repository browser.