40 lines
890 B
PHP
40 lines
890 B
PHP
<?php
|
|
|
|
namespace Illuminate\Contracts\Container;
|
|
|
|
interface ContextualBindingBuilder
|
|
{
|
|
/**
|
|
* Define the abstract target that depends on the context.
|
|
*
|
|
* @param string $abstract
|
|
* @return $this
|
|
*/
|
|
public function needs($abstract);
|
|
|
|
/**
|
|
* Define the implementation for the contextual binding.
|
|
*
|
|
* @param \Closure|string|array $implementation
|
|
* @return void
|
|
*/
|
|
public function give($implementation);
|
|
|
|
/**
|
|
* Define tagged services to be used as the implementation for the contextual binding.
|
|
*
|
|
* @param string $tag
|
|
* @return void
|
|
*/
|
|
public function giveTagged($tag);
|
|
|
|
/**
|
|
* Specify the configuration item to bind as a primitive.
|
|
*
|
|
* @param string $key
|
|
* @param mixed $default
|
|
* @return void
|
|
*/
|
|
public function giveConfig($key, $default = null);
|
|
}
|