MethodChecker::check()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 17
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 10
c 1
b 0
f 0
nc 3
nop 3
dl 0
loc 17
rs 9.9332
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: peter
5
 * Date: 20.07.18
6
 * Time: 14:02
7
 */
8
9
namespace Maslosoft\Whitelist\Checkers;
10
11
use Maslosoft\Whitelist\Helpers\ErrorCollector;
12
use Maslosoft\Whitelist\Helpers\ListNormalizer;
13
use Maslosoft\Whitelist\Interfaces\CheckerInterface;
14
use Maslosoft\Whitelist\Tokenizer\Tokenizer;
15
use Maslosoft\Whitelist\Whitelist;
16
17
class MethodChecker extends AbstractChecker implements CheckerInterface
18
{
19
	public function check(Whitelist $list, Tokenizer $tokenizer, ErrorCollector $ec)
20
	{
21
		$result = true;
22
		$allowed = ListNormalizer::normalize($list->whitelist['methods']);
23
24
		foreach ($tokenizer->getMethodCalls() as $token)
25
		{
26
			$this->logger->debug("Allowed method: $token->value");
27
			if (!empty($allowed[$token->value]))
28
			{
29
				continue;
30
			}
31
			$ec->forbidden($token);
32
			$this->logger->info("Forbidden method: $token->value");
33
			$result = false;
34
		}
35
		return $result;
36
	}
37
38
}