public function draw(EngineInterface $engine, LayerContextInterface $layerContext, \Phim\GeometryInterface $geometry) { if ($engine->isGd()) { if ($geo instanceof CircleInterface) { //Draw circle } else { if ($geo instanceof RectangleInterface) { //Draw rectangle } } //Notice that only BASIC shapes actually need to be handled, since everything else can be represented with a polygon //(Everything could, but performance...) } }
/** * @param string $template * @param array $params * * @return string */ protected function renderTemplate(string $template, array $params = []) : string { return $this->engine->render($template, $params); }