Completed
Push — renovate/eslint-loader-4.x ( dc00f9...91efae )
by
unknown
24:51 queued 17:33
created

Function_Deprecated::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Function Deprecated Checker.
4
 *
5
 * @package automattic/jetpack-analyzer
6
 */
7
8
namespace Automattic\Jetpack\Analyzer\Differences;
9
10
use Automattic\Jetpack\Analyzer\PersistentList\Item as PersistentListItem;
11
use Automattic\Jetpack\Analyzer\Invocations\Function_Call;
12
use Automattic\Jetpack\Analyzer\Warnings\Warning; // TODO - subclasses?
13
14
/**
15
 * Class Function_Deprecated
16
 */
17
class Function_Deprecated extends PersistentListItem implements Invocation_Warner {
18
	/**
19
	 * Old declaration.
20
	 *
21
	 * @var object
22
	 */
23
	public $old_declaration;
24
25
	/**
26
	 * New declaration.
27
	 *
28
	 * @var object
29
	 */
30
	public $new_declaration;
31
32
	/**
33
	 * Function_Moved constructor.
34
	 *
35
	 * @param object $old_declaration Old declaration.
36
	 * @param object $new_declaration New declaration.
37
	 */
38
	public function __construct( $old_declaration, $new_declaration ) {
39
		$this->old_declaration = $old_declaration;
40
		$this->new_declaration = $new_declaration;
41
	}
42
43
	/**
44
	 * Return array of declaration items.
45
	 *
46
	 * @return array
47
	 */
48
	public function to_csv_array() {
49
		return array(
50
			$this->type(),
51
			$this->old_declaration->path,
52
			$this->old_declaration->line,
53
			$this->old_declaration->display_name(),
54
		);
55
	}
56
57
	/**
58
	 * Returns type of issue discovered.
59
	 *
60
	 * @return string 'function_deprecated'
61
	 */
62
	public function type() {
63
		return 'function_deprecated';
64
	}
65
66
	/**
67
	 * Returns the display name of the issue.
68
	 *
69
	 * @return mixed
70
	 */
71
	public function display_name() {
72
		return $this->old_declaration->display_name();
73
	}
74
75
	/**
76
	 * Find warnings.
77
	 *
78
	 * @param object $invocation Invocation.
79
	 * @param object $warnings Warnings.
80
	 */
81
	public function find_invocation_warnings( $invocation, $warnings ) {
82
		if ( $invocation->depends_on( $this->old_declaration ) ) {
83
			$warnings->add(
84
				new Warning( $this->type(), $invocation->path, $invocation->line, 'Function ' . $this->old_declaration->display_name() . ' is deprecated ' . $this->old_declaration->path . ' line ' . $this->old_declaration->line, $this->old_declaration )
85
			);
86
		}
87
	}
88
}
89