PluginProbe
Depicter — Popup & Slider Builder / 1.3.3
Depicter — Popup & Slider Builder v1.3.3
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / vendor / htmlburger / wpemerge / src / Application / ClosureFactory.php

ClosureFactory.php in Depicter — Popup & Slider Builder 1.3.3, at vendor/htmlburger/wpemerge/src/Application/ClosureFactory.php

66 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package WPEmerge
4 * @author Atanas Angelov <hi@atanas.dev>
5 * @copyright 2017-2019 Atanas Angelov
6 * @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7 * @link https://wpemerge.com/
8 */
9
10 namespace WPEmerge\Application;
11
12 use Closure;
13
14 /**
15 * Factory that makes closures which resolve values from the container.
16 */
17 class ClosureFactory {
18 /**
19 * Factory.
20 *
21 * @var GenericFactory
22 */
23 protected $factory = null;
24
25 /**
26 * Constructor.
27 *
28 * @codeCoverageIgnore
29 * @param GenericFactory $factory
30 */
31 public function __construct( GenericFactory $factory ) {
32 $this->factory = $factory;
33 }
34
35 /**
36 * Make a closure that resolves a value from the container.
37 *
38 * @param string $key
39 * @return Closure
40 */
41 public function value( $key ) {
42 return function () use ( $key ) {
43 return $this->factory->make( $key );
44 };
45 }
46
47 /**
48 * Make a closure that resolves a class instance from the container and
49 * calls one of its methods.
50 * Useful if you need to pass a callable to an API without container
51 * support such as the REST API.
52 *
53 * @param string $key
54 * @param string $method
55 * @return Closure
56 */
57 public function method( $key, $method ) {
58 return function () use ( $key, $method ) {
59 return call_user_func_array(
60 [$this->factory->make( $key ), $method],
61 func_get_args()
62 );
63 };
64 }
65 }
66