blob: 05e36253c801dd9436138912fb3749d589af3897 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Illuminate\Contracts\Container;
4
5interface ContextualBindingBuilder
6{
7 /**
8 * Define the abstract target that depends on the context.
9 *
10 * @param string $abstract
11 * @return $this
12 */
13 public function needs($abstract);
14
15 /**
16 * Define the implementation for the contextual binding.
17 *
18 * @param \Closure|string $implementation
19 * @return void
20 */
21 public function give($implementation);
22
23 /**
24 * Define tagged services to be used as the implementation for the contextual binding.
25 *
26 * @param string $tag
27 * @return void
28 */
29 public function giveTagged($tag);
30}