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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?php namespace YayMail\TemplatePatterns;
use YayMail\Abstracts\BasePattern; use YayMail\Utils\SingletonTrait;
/** * Class PatternService */ class PatternService {
use SingletonTrait;
protected $patterns = [];
/** * @param BasePattern $section_template_instance SectionTemplate object */ public function register( BasePattern $pattern_instance ) { if ( ! $pattern_instance instanceof BasePattern ) { return; }
$registered_patterns = array_map( function( $item ) { return $item->get_type(); }, $this->patterns );
if ( in_array( $pattern_instance->get_type(), $registered_patterns, true ) ) { return; }
$this->patterns[] = $pattern_instance;
$registered_sections = SectionTemplateService::get_instance()->get_list();
foreach ( $registered_sections as $section ) { if ( $section->get_type() === $pattern_instance->get_section() ) {
$section->add_pattern( $pattern_instance ); } }
}
public function get_list() { return $this->patterns; }
public function get_list_data() { return array_map( function( BasePattern $item ) { return $item->get_raw_data(); }, $this->patterns ); } }
|