1<?php 2 3namespace Illuminate\Support\Traits; 4 5use Illuminate\Contracts\Container\Container; 6use Illuminate\Support\Fluent; 7 8trait CapsuleManagerTrait 9{ 10 /** 11 * The current globally used instance. 12 * 13 * @var object 14 */ 15 protected static $instance; 16 17 /** 18 * The container instance. 19 * 20 * @var \Illuminate\Contracts\Container\Container 21 */ 22 protected $container; 23 24 /** 25 * Setup the IoC container instance. 26 * 27 * @param \Illuminate\Contracts\Container\Container $container 28 * @return void 29 */ 30 protected function setupContainer(Container $container) 31 { 32 $this->container = $container; 33 34 if (! $this->container->bound('config')) { 35 $this->container->instance('config', new Fluent); 36 } 37 } 38 39 /** 40 * Make this capsule instance available globally. 41 * 42 * @return void 43 */ 44 public function setAsGlobal() 45 { 46 static::$instance = $this; 47 } 48 49 /** 50 * Get the IoC container instance. 51 * 52 * @return \Illuminate\Contracts\Container\Container 53 */ 54 public function getContainer() 55 { 56 return $this->container; 57 } 58 59 /** 60 * Set the IoC container instance. 61 * 62 * @param \Illuminate\Contracts\Container\Container $container 63 * @return void 64 */ 65 public function setContainer(Container $container) 66 { 67 $this->container = $container; 68 } 69} 70