Refactor the view class.

This commit is contained in:
Taylor Otwell 2011-08-08 15:16:21 -05:00
parent 3bf85e03a5
commit 120d6a5da6
1 changed files with 2 additions and 36 deletions

View File

@ -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); }