diff --git a/CHANGELOG b/CHANGELOG index 37f4ce224..3ef47e637 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ * 1.34.4 (2017-XX-XX) - * n/a + * fixed deprecation when using Twig_Profiler_Dumper_Html * 1.34.3 (2017-06-07) diff --git a/lib/Twig/Profiler/Dumper/Base.php b/lib/Twig/Profiler/Dumper/Base.php new file mode 100644 index 000000000..913afd4f0 --- /dev/null +++ b/lib/Twig/Profiler/Dumper/Base.php @@ -0,0 +1,62 @@ + + */ +abstract class Twig_Profiler_Dumper_Base +{ + private $root; + + public function dump(Twig_Profiler_Profile $profile) + { + return $this->dumpProfile($profile); + } + + abstract protected function formatTemplate(Twig_Profiler_Profile $profile, $prefix); + + abstract protected function formatNonTemplate(Twig_Profiler_Profile $profile, $prefix); + + abstract protected function formatTime(Twig_Profiler_Profile $profile, $percent); + + private function dumpProfile(Twig_Profiler_Profile $profile, $prefix = '', $sibling = false) + { + if ($profile->isRoot()) { + $this->root = $profile->getDuration(); + $start = $profile->getName(); + } else { + if ($profile->isTemplate()) { + $start = $this->formatTemplate($profile, $prefix); + } else { + $start = $this->formatNonTemplate($profile, $prefix); + } + $prefix .= $sibling ? '│ ' : ' '; + } + + $percent = $this->root ? $profile->getDuration() / $this->root * 100 : 0; + + if ($profile->getDuration() * 1000 < 1) { + $str = $start."\n"; + } else { + $str = sprintf("%s %s\n", $start, $this->formatTime($profile, $percent)); + } + + $nCount = count($profile->getProfiles()); + foreach ($profile as $i => $p) { + $str .= $this->dumpProfile($p, $prefix, $i + 1 !== $nCount); + } + + return $str; + } +} + +class_alias('Twig_Profiler_Dumper_Base', 'Twig\Profiler\Dumper\BaseDumper', false); +class_exists('Twig_Profiler_Profile'); diff --git a/lib/Twig/Profiler/Dumper/Html.php b/lib/Twig/Profiler/Dumper/Html.php index 38b28db95..b57a25517 100644 --- a/lib/Twig/Profiler/Dumper/Html.php +++ b/lib/Twig/Profiler/Dumper/Html.php @@ -14,7 +14,7 @@ * * @final */ -class Twig_Profiler_Dumper_Html extends Twig_Profiler_Dumper_Text +class Twig_Profiler_Dumper_Html extends Twig_Profiler_Dumper_Base { private static $colors = array( 'block' => '#dfd', diff --git a/lib/Twig/Profiler/Dumper/Text.php b/lib/Twig/Profiler/Dumper/Text.php index 1171e5c3e..69d2c4bf3 100644 --- a/lib/Twig/Profiler/Dumper/Text.php +++ b/lib/Twig/Profiler/Dumper/Text.php @@ -14,15 +14,8 @@ * * @final */ -class Twig_Profiler_Dumper_Text +class Twig_Profiler_Dumper_Text extends Twig_Profiler_Dumper_Base { - private $root; - - public function dump(Twig_Profiler_Profile $profile) - { - return $this->dumpProfile($profile); - } - protected function formatTemplate(Twig_Profiler_Profile $profile, $prefix) { return sprintf('%sā”” %s', $prefix, $profile->getTemplate()); @@ -37,36 +30,6 @@ class Twig_Profiler_Dumper_Text { return sprintf('%.2fms/%.0f%%', $profile->getDuration() * 1000, $percent); } - - private function dumpProfile(Twig_Profiler_Profile $profile, $prefix = '', $sibling = false) - { - if ($profile->isRoot()) { - $this->root = $profile->getDuration(); - $start = $profile->getName(); - } else { - if ($profile->isTemplate()) { - $start = $this->formatTemplate($profile, $prefix); - } else { - $start = $this->formatNonTemplate($profile, $prefix); - } - $prefix .= $sibling ? '│ ' : ' '; - } - - $percent = $this->root ? $profile->getDuration() / $this->root * 100 : 0; - - if ($profile->getDuration() * 1000 < 1) { - $str = $start."\n"; - } else { - $str = sprintf("%s %s\n", $start, $this->formatTime($profile, $percent)); - } - - $nCount = count($profile->getProfiles()); - foreach ($profile as $i => $p) { - $str .= $this->dumpProfile($p, $prefix, $i + 1 !== $nCount); - } - - return $str; - } } class_alias('Twig_Profiler_Dumper_Text', 'Twig\Profiler\Dumper\TextDumper', false); diff --git a/src/Profiler/Dumper/BaseDumper.php b/src/Profiler/Dumper/BaseDumper.php new file mode 100644 index 000000000..33c32801c --- /dev/null +++ b/src/Profiler/Dumper/BaseDumper.php @@ -0,0 +1,11 @@ +