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