Browse Source

added application access to composers.

Taylor Otwell 13 years ago
parent
commit
893bb83895
3 changed files with 29 additions and 15 deletions
  1. 1 1
      application/composers.php
  2. 8 2
      laravel/config/container.php
  3. 20 12
      laravel/view.php

+ 1 - 1
application/composers.php

@@ -39,7 +39,7 @@ return array(
 	|
 	|
 	*/
 	*/
 
 
-	'home.index' => array('name' => 'home', function($view)
+	'home.index' => array('name' => 'home', function($laravel, $view)
 	{
 	{
 		//
 		//
 	}),
 	}),

+ 8 - 2
laravel/config/container.php

@@ -158,11 +158,17 @@ return array(
 	}),
 	}),
 
 
 
 
-	'laravel.view' => array('singleton' => true, 'resolver' => function()
+	'laravel.view' => array('singleton' => true, 'resolver' => function($container)
 	{
 	{
 		require_once SYS_PATH.'view'.EXT;
 		require_once SYS_PATH.'view'.EXT;
 
 
-		return new View_Factory(VIEW_PATH, new View_Composer(require APP_PATH.'composers'.EXT));
+		return new View_Factory($container->resolve('laravel.view.composer'), VIEW_PATH);
+	}),
+
+
+	'laravel.view.composer' => array('resolver' => function($container)
+	{
+		return new View_Composer($container->resolve('laravel.application'), require APP_PATH.'composers'.EXT);
 	}),
 	}),
 
 
 	/*
 	/*

+ 20 - 12
laravel/view.php

@@ -8,6 +8,13 @@
  */
  */
 class View_Composer {
 class View_Composer {
 
 
+	/**
+	 * The application instance.
+	 *
+	 * @var Application
+	 */
+	protected $application;
+
 	/**
 	/**
 	 * The view composers.
 	 * The view composers.
 	 *
 	 *
@@ -21,8 +28,9 @@ class View_Composer {
 	 * @param  array  $composers
 	 * @param  array  $composers
 	 * @return void
 	 * @return void
 	 */
 	 */
-	public function __construct($composers)
+	public function __construct(Application $application, $composers)
 	{
 	{
+		$this->application = $application;
 		$this->composers = $composers;
 		$this->composers = $composers;
 	}
 	}
 
 
@@ -52,7 +60,7 @@ class View_Composer {
 		{
 		{
 			foreach ((array) $this->composers[$view->view] as $key => $value)
 			foreach ((array) $this->composers[$view->view] as $key => $value)
 			{
 			{
-				if ($value instanceof \Closure) return call_user_func($value, $view);
+				if ($value instanceof \Closure) return call_user_func($value, $this->application, $view);
 			}
 			}
 		}
 		}
 	}
 	}
@@ -67,30 +75,30 @@ class View_Composer {
 class View_Factory {
 class View_Factory {
 
 
 	/**
 	/**
-	 * The directory containing the views.
+	 * The view composer instance.
 	 *
 	 *
-	 * @var string
+	 * @var View_Composer
 	 */
 	 */
-	protected $path;
+	protected $composer;
 
 
 	/**
 	/**
-	 * The view composer instance.
+	 * The directory containing the views.
 	 *
 	 *
-	 * @var View_Composer
+	 * @var string
 	 */
 	 */
-	protected $composer;
+	protected $path;
 
 
 	/**
 	/**
 	 * Create a new view factory instance.
 	 * Create a new view factory instance.
 	 *
 	 *
-	 * @param  array   $composers
-	 * @param  string  $path
+	 * @param  View_Composer  $composer
+	 * @param  string         $path
 	 * @return void
 	 * @return void
 	 */
 	 */
-	public function __construct($path, View_Composer $composer)
+	public function __construct(View_Composer $composer, $path)
 	{
 	{
-		$this->path = $path;
 		$this->composer = $composer;
 		$this->composer = $composer;
+		$this->path = $path;
 	}
 	}
 
 
 	/**
 	/**