From 120d6a5da6a1adcee4f94374b1e4788d269f26d0 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Mon, 8 Aug 2011 15:16:21 -0500 Subject: [PATCH] Refactor the view class. --- system/view.php | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/system/view.php b/system/view.php index 8006f130..72c0cc3d 100644 --- a/system/view.php +++ b/system/view.php @@ -134,11 +134,9 @@ private function compose() if (isset(static::$composers[$this->module][$this->view])) { - $composer = static::$composers[$this->module][$this->view]; - - if ( ! is_null($composer = $this->find_composer_function($composer))) + foreach ((array) static::$composers[$this->module][$this->view] as $key => $value) { - call_user_func($composer, $this); + if (is_callable($value)) return call_user_func($value, $this); } } } @@ -158,28 +156,6 @@ private static function load_composers($module) static::$composers[$module] = (file_exists($composers)) ? require $composers : array(); } - /** - * Find the composer function in a composer definition. - * - * If the composer value itself is callable, it will be returned, otherwise the - * first callable value in the composer array will be returned. If the composer - * value is a string, it is simply a view name being defined. - * - * @param mixed $composer - * @return Closure - */ - private function find_composer_function($composer) - { - if (is_string($composer)) return; - - if (is_callable($composer)) return $composer; - - foreach ($composer as $key => $value) - { - if (is_callable($value)) return $value; - } - } - /** * Get the parsed content of the view. * @@ -194,16 +170,6 @@ public function get() throw new \Exception("View [$view] does not exist."); } - // Before rendering the view, we need to spin through all of the bound data and - // evaluate any sub-views or responses that are present. - foreach ($this->data as &$data) - { - if ($data instanceof View or $data instanceof Response) - { - $data = (string) $data; - } - } - ob_start() and extract($this->data, EXTR_SKIP); try { include $this->path.$view.EXT; } catch (\Exception $e) { Error::handle($e); }