Use ParserFactory in a bunch of places
[lhc/web/wiklou.git] / includes / parser / ParserFactory.php
1 <?php
2
3 /**
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 * http://www.gnu.org/copyleft/gpl.html
18 *
19 * @file
20 * @ingroup Parser
21 */
22
23 /**
24 * @since 1.32
25 */
26 class ParserFactory {
27 /** @var array */
28 private $conf;
29
30 /** @var MagicWordFactory */
31 private $magicWordFactory;
32
33 /** @var Language */
34 private $contLang;
35
36 /** @var string */
37 private $urlProtocols;
38
39 /**
40 * @param array $conf See $wgParserConf documentation
41 * @param MagicWordFactory $magicWordFactory
42 * @param Language $contLang Content language
43 * @param string $urlProtocols As returned from wfUrlProtocols()
44 * @since 1.32
45 */
46 public function __construct(
47 array $conf, MagicWordFactory $magicWordFactory, Language $contLang, $urlProtocols
48 ) {
49 $this->conf = $conf;
50 $this->magicWordFactory = $magicWordFactory;
51 $this->contLang = $contLang;
52 $this->urlProtocols = $urlProtocols;
53 }
54
55 /**
56 * @return Parser
57 * @since 1.32
58 */
59 public function create() : Parser {
60 return new Parser( $this->conf, $this->magicWordFactory, $this->contLang, $this,
61 $this->urlProtocols );
62 }
63 }