-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPhpHocon.php
42 lines (36 loc) · 1006 Bytes
/
PhpHocon.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
namespace PhpHocon;
use PhpHocon\Generator\Generator;
use PhpHocon\Generator\GeneratorFactory;
use PhpHocon\Token\HoconTokenizer;
use PhpHocon\Token\Tokenizer;
class PhpHocon
{
/**
* @var Tokenizer
*/
private $tokenizer;
/**
* @var GeneratorFactory
*/
private $generatorFactory;
/**
* @param Tokenizer $tokenizer
* @param GeneratorFactory $generatorFactory
*/
public function __construct(Tokenizer $tokenizer = null, GeneratorFactory $generatorFactory = null)
{
$this->tokenizer = $tokenizer ?: new HoconTokenizer();
$this->generatorFactory = $generatorFactory ?: new GeneratorFactory();
}
/**
* @param string $input
* @return \stdClass
*/
public function parseToArray($input)
{
$generator = $this->generatorFactory->getGeneratorForType(GeneratorFactory::ARRAY_TYPE);
$tokens = $this->tokenizer->tokenize($input);
return $generator->generate($tokens);
}
}