Skip to content

Commit

Permalink
Move common method for a CapsuleManager to trait, this would reduce t…
Browse files Browse the repository at this point in the history
…he requirement to produce new CapsuleManager for other component in the future (e.g: laravel/framework#5032)

Also remove duplicate "require-dev" component (when already explicitly declare in "require").

Signed-off-by: crynobone <[email protected]>
  • Loading branch information
crynobone committed Jul 21, 2014
1 parent 58109e3 commit ae39762
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions Traits/CapsuleManagerTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php namespace Illuminate\Support\Traits;

use Illuminate\Container\Container;
use Illuminate\Support\Fluent;

trait CapsuleManagerTrait {

/**
* The current globally used instance.
*
* @var object
*/
protected static $instance;

/**
* The container instance.
*
* @var \Illuminate\Container\Container
*/
protected $container;

/**
* Setup the IoC container instance.
*
* @param \Illuminate\Container\Container|null $container
* @return void
*/
protected function setupContainer($container)
{
$this->container = $container ?: new Container;

if ( ! $this->container->bound('config'))
{
$this->container->instance('config', new Fluent);
}
}

/**
* Make this capsule instance available globally.
*
* @return void
*/
public function setAsGlobal()
{
static::$instance = $this;
}

/**
* Get the IoC container instance.
*
* @return \Illuminate\Container\Container
*/
public function getContainer()
{
return $this->container;
}

/**
* Set the IoC container instance.
*
* @param \Illuminate\Container\Container $container
* @return void
*/
public function setContainer(Container $container)
{
$this->container = $container;
}

}

0 comments on commit ae39762

Please sign in to comment.