Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | <?php |
||
4 | class __TwigTemplate_c27e8ed7892b7ecc2047151655e75ee5edd89d7c8d0738b9d02d3aca1434616b extends Twig_Template |
||
5 | { |
||
6 | public function __construct(Twig_Environment $env) |
||
7 | { |
||
8 | parent::__construct($env); |
||
9 | |||
10 | // line 1 |
||
11 | $this->parent = $this->loadTemplate("layout/layout.twig", "traits.twig", 1); |
||
12 | $this->blocks = array( |
||
13 | 'title' => array($this, 'block_title'), |
||
14 | 'body_class' => array($this, 'block_body_class'), |
||
15 | 'page_content' => array($this, 'block_page_content'), |
||
16 | ); |
||
17 | } |
||
18 | |||
19 | protected function doGetParent(array $context) |
||
20 | { |
||
21 | return "layout/layout.twig"; |
||
22 | } |
||
23 | |||
24 | protected function doDisplay(array $context, array $blocks = array()) |
||
25 | { |
||
26 | // line 2 |
||
27 | $context["__internal_76faad54a4455c81f61cdc23c30804c7140f9aff264325797b153f5d8c55d1c6"] = $this->loadTemplate("macros.twig", "traits.twig", 2); |
||
28 | // line 1 |
||
29 | $this->parent->display($context, array_merge($this->blocks, $blocks)); |
||
30 | } |
||
31 | |||
32 | // line 3 |
||
33 | public function block_title($context, array $blocks = array()) |
||
34 | { |
||
35 | echo "Traits | "; |
||
36 | $this->displayParentBlock("title", $context, $blocks); |
||
37 | } |
||
38 | |||
39 | // line 4 |
||
40 | public function block_body_class($context, array $blocks = array()) |
||
41 | { |
||
42 | echo "traits"; |
||
43 | } |
||
44 | |||
45 | // line 6 |
||
46 | public function block_page_content($context, array $blocks = array()) |
||
47 | { |
||
48 | // line 7 |
||
49 | echo " <div class=\"page-header\"> |
||
50 | <h1>Traits</h1> |
||
51 | </div> |
||
52 | |||
53 | <div class=\"container-fluid underlined\"> |
||
54 | "; |
||
55 | // line 12 |
||
56 | $context['_parent'] = $context; |
||
57 | $context['_seq'] = twig_ensure_traversable((isset($context["classes"]) ? $context["classes"] : $this->getContext($context, "classes"))); |
||
58 | foreach ($context['_seq'] as $context["_key"] => $context["class"]) { |
||
59 | // line 13 |
||
60 | echo " "; |
||
61 | if ($this->getAttribute($context["class"], "trait", array())) { |
||
62 | // line 14 |
||
63 | echo " <div class=\"row\"> |
||
64 | <div class=\"col-md-6\"> |
||
65 | "; |
||
66 | // line 16 |
||
67 | echo $context["__internal_76faad54a4455c81f61cdc23c30804c7140f9aff264325797b153f5d8c55d1c6"]->getclass_link($context["class"], true); |
||
68 | echo " |
||
69 | </div> |
||
70 | <div class=\"col-md-6\"> |
||
71 | "; |
||
72 | // line 19 |
||
73 | echo $this->env->getExtension('sami')->parseDesc($context, $this->getAttribute($context["class"], "shortdesc", array()), $context["class"]); |
||
74 | echo " |
||
75 | </div> |
||
76 | </div> |
||
77 | "; |
||
78 | } |
||
79 | // line 23 |
||
80 | echo " "; |
||
81 | } |
||
82 | $_parent = $context['_parent']; |
||
83 | unset($context['_seq'], $context['_iterated'], $context['_key'], $context['class'], $context['_parent'], $context['loop']); |
||
84 | $context = array_intersect_key($context, $_parent) + $_parent; |
||
85 | // line 24 |
||
86 | echo " </div> |
||
87 | "; |
||
88 | } |
||
89 | |||
90 | public function getTemplateName() |
||
91 | { |
||
92 | return "traits.twig"; |
||
93 | } |
||
94 | |||
95 | public function isTraitable() |
||
96 | { |
||
97 | return false; |
||
98 | } |
||
99 | |||
100 | public function getDebugInfo() |
||
101 | { |
||
102 | return array ( 86 => 24, 80 => 23, 73 => 19, 67 => 16, 63 => 14, 60 => 13, 56 => 12, 49 => 7, 46 => 6, 40 => 4, 33 => 3, 29 => 1, 27 => 2, 11 => 1,); |
||
103 | } |
||
104 | } |
||
105 | /* {% extends "layout/layout.twig" %}*/ |
||
131 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.