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.