Completed
Branch FET-8209-allow-multiple-carts (f5b2f0)
by
unknown
108:40 queued 97:50
created
core/services/container/DependencyInjector.php 1 patch
Indentation   +209 added lines, -209 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
 use UnexpectedValueException;
5 5
 
6 6
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
7
-    exit('No direct script access allowed');
7
+	exit('No direct script access allowed');
8 8
 }
9 9
 
10 10
 
@@ -22,214 +22,214 @@  discard block
 block discarded – undo
22 22
 class DependencyInjector implements InjectorInterface
23 23
 {
24 24
 
25
-    /**
26
-     * @var CoffeePotInterface $coffee_pot
27
-     */
28
-    private $coffee_pot;
29
-
30
-    /**
31
-     * @var \EEH_Array $array_helper
32
-     */
33
-    private $array_helper;
34
-
35
-    /**
36
-     * @var \ReflectionClass[] $reflectors
37
-     */
38
-    private $reflectors;
39
-
40
-    /**
41
-     * @var \ReflectionMethod[] $constructors
42
-     */
43
-    private $constructors;
44
-
45
-    /**
46
-     * @var \ReflectionParameter[] $parameters
47
-     */
48
-    private $parameters;
49
-
50
-
51
-
52
-    /**
53
-     * DependencyInjector constructor
54
-     *
55
-     * @param CoffeePotInterface $coffee_pot
56
-     * @param \EEH_Array         $array_helper
57
-     */
58
-    public function __construct(CoffeePotInterface $coffee_pot, \EEH_Array $array_helper)
59
-    {
60
-        $this->coffee_pot = $coffee_pot;
61
-        $this->array_helper = $array_helper;
62
-    }
63
-
64
-
65
-
66
-    /**
67
-     * getReflectionClass
68
-     * checks if a ReflectionClass object has already been generated for a class
69
-     * and returns that instead of creating a new one
70
-     *
71
-     * @param string $class_name
72
-     * @return \ReflectionClass
73
-     */
74
-    public function getReflectionClass($class_name)
75
-    {
76
-        if (
77
-            ! isset($this->reflectors[$class_name])
78
-            || ! $this->reflectors[$class_name] instanceof \ReflectionClass
79
-        ) {
80
-            $this->reflectors[$class_name] = new \ReflectionClass($class_name);
81
-        }
82
-        return $this->reflectors[$class_name];
83
-    }
84
-
85
-
86
-
87
-    /**
88
-     * getConstructor
89
-     * checks if a ReflectionMethod object has already been generated for the class constructor
90
-     * and returns that instead of creating a new one
91
-     *
92
-     * @param \ReflectionClass $reflector
93
-     * @return \ReflectionMethod
94
-     */
95
-    protected function getConstructor(\ReflectionClass $reflector)
96
-    {
97
-        if (
98
-            ! isset($this->constructors[$reflector->getName()])
99
-            || ! $this->constructors[$reflector->getName()] instanceof \ReflectionMethod
100
-        ) {
101
-            $this->constructors[$reflector->getName()] = $reflector->getConstructor();
102
-        }
103
-        return $this->constructors[$reflector->getName()];
104
-    }
105
-
106
-
107
-
108
-    /**
109
-     * getParameters
110
-     * checks if an array of ReflectionParameter objects has already been generated for the class constructor
111
-     * and returns that instead of creating a new one
112
-     *
113
-     * @param \ReflectionMethod $constructor
114
-     * @return \ReflectionParameter[]
115
-     */
116
-    protected function getParameters(\ReflectionMethod $constructor)
117
-    {
118
-        if ( ! isset($this->parameters[$constructor->class])) {
119
-            $this->parameters[$constructor->class] = $constructor->getParameters();
120
-        }
121
-        return $this->parameters[$constructor->class];
122
-    }
123
-
124
-
125
-
126
-    /**
127
-     * resolveDependencies
128
-     * examines the constructor for the requested class to determine
129
-     * if any dependencies exist, and if they can be injected.
130
-     * If so, then those classes will be added to the array of arguments passed to the constructor
131
-     * PLZ NOTE: this is achieved by type hinting the constructor params
132
-     * For example:
133
-     *        if attempting to load a class "Foo" with the following constructor:
134
-     *        __construct( Bar $bar_class, Fighter $grohl_class )
135
-     *        then $bar_class and $grohl_class will be added to the $arguments array,
136
-     *        but only IF they are NOT already present in the incoming arguments array,
137
-     *        and the correct classes can be loaded
138
-     *
139
-     * @param RecipeInterface   $recipe
140
-     * @param \ReflectionClass  $reflector
141
-     * @param array             $arguments
142
-     * @return array
143
-     */
144
-    public function resolveDependencies(RecipeInterface $recipe, \ReflectionClass $reflector, $arguments = array())
145
-    {
146
-        // if arguments array is numerically and sequentially indexed, then we want it to remain as is,
147
-        // else wrap it in an additional array so that it doesn't get split into multiple parameters
148
-        $arguments = $this->array_helper->is_array_numerically_and_sequentially_indexed($arguments)
149
-            ? $arguments
150
-            : array($arguments);
151
-        $resolved_parameters = array();
152
-        // let's examine the constructor
153
-        // let's examine the constructor
154
-        $constructor = $this->getConstructor($reflector);
155
-        // whu? huh? nothing?
156
-        if ( ! $constructor) {
157
-            return $arguments;
158
-        }
159
-        // get constructor parameters
160
-        $params = $this->getParameters($constructor);
161
-        if (empty($params)) {
162
-            return $resolved_parameters;
163
-        }
164
-        $ingredients = $recipe->ingredients();
165
-        // and the keys for the incoming arguments array so that we can compare existing arguments with what is expected
166
-        $argument_keys = array_keys($arguments);
167
-        // now loop thru all of the constructors expected parameters
168
-        foreach ($params as $index => $param) {
169
-            if ( ! $param instanceof \ReflectionParameter) {
170
-                continue;
171
-            }
172
-            // is this a dependency for a specific class ?
173
-            $param_class = $param->getClass() ? $param->getClass()->name : null;
174
-            if (
175
-                // param is specified in the list of ingredients for this Recipe
176
-                isset($ingredients[$param_class])
177
-            ) {
178
-                // attempt to inject the dependency
179
-                $resolved_parameters[$index] = $this->injectDependency($ingredients[$param_class]);
180
-            } else if (
181
-                // param is not even a class
182
-                empty($param_class)
183
-                // and something already exists in the incoming arguments for this param
184
-                && isset($argument_keys[$index], $arguments[$argument_keys[$index]])
185
-            ) {
186
-                // add parameter from incoming arguments
187
-                $resolved_parameters[$index] = $arguments[$argument_keys[$index]];
188
-            } else if (
189
-                // parameter is type hinted as a class, exists as an incoming argument, AND it's the correct class
190
-                ! empty($param_class)
191
-                && isset($argument_keys[$index], $arguments[$argument_keys[$index]])
192
-                && $arguments[$argument_keys[$index]] instanceof $param_class
193
-            ) {
194
-                // add parameter from incoming arguments
195
-                $resolved_parameters[$index] = $arguments[$argument_keys[$index]];
196
-            } else if (
197
-                // parameter is type hinted as a class, and should be injected
198
-            ! empty($param_class)
199
-            ) {
200
-                // attempt to inject the dependency
201
-                $resolved_parameters[$index] = $this->injectDependency($param_class);
202
-            } else if ($param->isOptional()) {
203
-                $resolved_parameters[$index] = $param->getDefaultValue();
204
-            } else {
205
-                $resolved_parameters[$index] = null;
206
-            }
207
-        }
208
-        return $resolved_parameters;
209
-    }
210
-
211
-
212
-
213
-    /**
214
-     * @param string $param_class
215
-     * @return mixed
216
-     */
217
-    private function injectDependency($param_class)
218
-    {
219
-        $dependency = $this->coffee_pot->brew($param_class);
220
-        if ( ! $dependency instanceof $param_class) {
221
-            throw new UnexpectedValueException(
222
-                sprintf(
223
-                    __(
224
-                        'Could not resolve dependency for "%1$s" for the "%2$s" class constructor.',
225
-                        'event_espresso'
226
-                    ),
227
-                    $param_class
228
-                )
229
-            );
230
-        }
231
-        return $dependency;
232
-    }
25
+	/**
26
+	 * @var CoffeePotInterface $coffee_pot
27
+	 */
28
+	private $coffee_pot;
29
+
30
+	/**
31
+	 * @var \EEH_Array $array_helper
32
+	 */
33
+	private $array_helper;
34
+
35
+	/**
36
+	 * @var \ReflectionClass[] $reflectors
37
+	 */
38
+	private $reflectors;
39
+
40
+	/**
41
+	 * @var \ReflectionMethod[] $constructors
42
+	 */
43
+	private $constructors;
44
+
45
+	/**
46
+	 * @var \ReflectionParameter[] $parameters
47
+	 */
48
+	private $parameters;
49
+
50
+
51
+
52
+	/**
53
+	 * DependencyInjector constructor
54
+	 *
55
+	 * @param CoffeePotInterface $coffee_pot
56
+	 * @param \EEH_Array         $array_helper
57
+	 */
58
+	public function __construct(CoffeePotInterface $coffee_pot, \EEH_Array $array_helper)
59
+	{
60
+		$this->coffee_pot = $coffee_pot;
61
+		$this->array_helper = $array_helper;
62
+	}
63
+
64
+
65
+
66
+	/**
67
+	 * getReflectionClass
68
+	 * checks if a ReflectionClass object has already been generated for a class
69
+	 * and returns that instead of creating a new one
70
+	 *
71
+	 * @param string $class_name
72
+	 * @return \ReflectionClass
73
+	 */
74
+	public function getReflectionClass($class_name)
75
+	{
76
+		if (
77
+			! isset($this->reflectors[$class_name])
78
+			|| ! $this->reflectors[$class_name] instanceof \ReflectionClass
79
+		) {
80
+			$this->reflectors[$class_name] = new \ReflectionClass($class_name);
81
+		}
82
+		return $this->reflectors[$class_name];
83
+	}
84
+
85
+
86
+
87
+	/**
88
+	 * getConstructor
89
+	 * checks if a ReflectionMethod object has already been generated for the class constructor
90
+	 * and returns that instead of creating a new one
91
+	 *
92
+	 * @param \ReflectionClass $reflector
93
+	 * @return \ReflectionMethod
94
+	 */
95
+	protected function getConstructor(\ReflectionClass $reflector)
96
+	{
97
+		if (
98
+			! isset($this->constructors[$reflector->getName()])
99
+			|| ! $this->constructors[$reflector->getName()] instanceof \ReflectionMethod
100
+		) {
101
+			$this->constructors[$reflector->getName()] = $reflector->getConstructor();
102
+		}
103
+		return $this->constructors[$reflector->getName()];
104
+	}
105
+
106
+
107
+
108
+	/**
109
+	 * getParameters
110
+	 * checks if an array of ReflectionParameter objects has already been generated for the class constructor
111
+	 * and returns that instead of creating a new one
112
+	 *
113
+	 * @param \ReflectionMethod $constructor
114
+	 * @return \ReflectionParameter[]
115
+	 */
116
+	protected function getParameters(\ReflectionMethod $constructor)
117
+	{
118
+		if ( ! isset($this->parameters[$constructor->class])) {
119
+			$this->parameters[$constructor->class] = $constructor->getParameters();
120
+		}
121
+		return $this->parameters[$constructor->class];
122
+	}
123
+
124
+
125
+
126
+	/**
127
+	 * resolveDependencies
128
+	 * examines the constructor for the requested class to determine
129
+	 * if any dependencies exist, and if they can be injected.
130
+	 * If so, then those classes will be added to the array of arguments passed to the constructor
131
+	 * PLZ NOTE: this is achieved by type hinting the constructor params
132
+	 * For example:
133
+	 *        if attempting to load a class "Foo" with the following constructor:
134
+	 *        __construct( Bar $bar_class, Fighter $grohl_class )
135
+	 *        then $bar_class and $grohl_class will be added to the $arguments array,
136
+	 *        but only IF they are NOT already present in the incoming arguments array,
137
+	 *        and the correct classes can be loaded
138
+	 *
139
+	 * @param RecipeInterface   $recipe
140
+	 * @param \ReflectionClass  $reflector
141
+	 * @param array             $arguments
142
+	 * @return array
143
+	 */
144
+	public function resolveDependencies(RecipeInterface $recipe, \ReflectionClass $reflector, $arguments = array())
145
+	{
146
+		// if arguments array is numerically and sequentially indexed, then we want it to remain as is,
147
+		// else wrap it in an additional array so that it doesn't get split into multiple parameters
148
+		$arguments = $this->array_helper->is_array_numerically_and_sequentially_indexed($arguments)
149
+			? $arguments
150
+			: array($arguments);
151
+		$resolved_parameters = array();
152
+		// let's examine the constructor
153
+		// let's examine the constructor
154
+		$constructor = $this->getConstructor($reflector);
155
+		// whu? huh? nothing?
156
+		if ( ! $constructor) {
157
+			return $arguments;
158
+		}
159
+		// get constructor parameters
160
+		$params = $this->getParameters($constructor);
161
+		if (empty($params)) {
162
+			return $resolved_parameters;
163
+		}
164
+		$ingredients = $recipe->ingredients();
165
+		// and the keys for the incoming arguments array so that we can compare existing arguments with what is expected
166
+		$argument_keys = array_keys($arguments);
167
+		// now loop thru all of the constructors expected parameters
168
+		foreach ($params as $index => $param) {
169
+			if ( ! $param instanceof \ReflectionParameter) {
170
+				continue;
171
+			}
172
+			// is this a dependency for a specific class ?
173
+			$param_class = $param->getClass() ? $param->getClass()->name : null;
174
+			if (
175
+				// param is specified in the list of ingredients for this Recipe
176
+				isset($ingredients[$param_class])
177
+			) {
178
+				// attempt to inject the dependency
179
+				$resolved_parameters[$index] = $this->injectDependency($ingredients[$param_class]);
180
+			} else if (
181
+				// param is not even a class
182
+				empty($param_class)
183
+				// and something already exists in the incoming arguments for this param
184
+				&& isset($argument_keys[$index], $arguments[$argument_keys[$index]])
185
+			) {
186
+				// add parameter from incoming arguments
187
+				$resolved_parameters[$index] = $arguments[$argument_keys[$index]];
188
+			} else if (
189
+				// parameter is type hinted as a class, exists as an incoming argument, AND it's the correct class
190
+				! empty($param_class)
191
+				&& isset($argument_keys[$index], $arguments[$argument_keys[$index]])
192
+				&& $arguments[$argument_keys[$index]] instanceof $param_class
193
+			) {
194
+				// add parameter from incoming arguments
195
+				$resolved_parameters[$index] = $arguments[$argument_keys[$index]];
196
+			} else if (
197
+				// parameter is type hinted as a class, and should be injected
198
+			! empty($param_class)
199
+			) {
200
+				// attempt to inject the dependency
201
+				$resolved_parameters[$index] = $this->injectDependency($param_class);
202
+			} else if ($param->isOptional()) {
203
+				$resolved_parameters[$index] = $param->getDefaultValue();
204
+			} else {
205
+				$resolved_parameters[$index] = null;
206
+			}
207
+		}
208
+		return $resolved_parameters;
209
+	}
210
+
211
+
212
+
213
+	/**
214
+	 * @param string $param_class
215
+	 * @return mixed
216
+	 */
217
+	private function injectDependency($param_class)
218
+	{
219
+		$dependency = $this->coffee_pot->brew($param_class);
220
+		if ( ! $dependency instanceof $param_class) {
221
+			throw new UnexpectedValueException(
222
+				sprintf(
223
+					__(
224
+						'Could not resolve dependency for "%1$s" for the "%2$s" class constructor.',
225
+						'event_espresso'
226
+					),
227
+					$param_class
228
+				)
229
+			);
230
+		}
231
+		return $dependency;
232
+	}
233 233
 
234 234
 }
235 235
 // End of file DependencyInjector.php
Please login to merge, or discard this patch.
core/services/container/InjectorInterface.php 1 patch
Indentation   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 namespace EventEspresso\core\services\container;
3 3
 
4 4
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
5
-    exit('No direct script access allowed');
5
+	exit('No direct script access allowed');
6 6
 }
7 7
 
8 8
 
@@ -17,39 +17,39 @@  discard block
 block discarded – undo
17 17
 interface InjectorInterface
18 18
 {
19 19
 
20
-    /**
21
-     * getReflectionClass
22
-     * checks if a ReflectionClass object has already been generated for a class
23
-     * and returns that instead of creating a new one
24
-     *
25
-     * @access public
26
-     * @param string $class_name
27
-     * @return \ReflectionClass
28
-     */
29
-    public function getReflectionClass($class_name);
30
-
31
-
32
-
33
-    /**
34
-     * resolveDependencies
35
-     * examines the constructor for the requested class to determine
36
-     * if any dependencies exist, and if they can be injected.
37
-     * If so, then those classes will be added to the array of arguments passed to the constructor
38
-     * PLZ NOTE: this is achieved by type hinting the constructor params
39
-     * For example:
40
-     *        if attempting to load a class "Foo" with the following constructor:
41
-     *        __construct( Bar $bar_class, Fighter $grohl_class )
42
-     *        then $bar_class and $grohl_class will be added to the $arguments array,
43
-     *        but only IF they are NOT already present in the incoming arguments array,
44
-     *        and the correct classes can be loaded
45
-     *
46
-     * @access public
47
-     * @param \EventEspresso\core\services\container\RecipeInterface $recipe
48
-     * @param \ReflectionClass                                       $reflector
49
-     * @param array                                                  $arguments
50
-     * @return array
51
-     */
52
-    public function resolveDependencies(RecipeInterface $recipe, \ReflectionClass $reflector, $arguments = array());
20
+	/**
21
+	 * getReflectionClass
22
+	 * checks if a ReflectionClass object has already been generated for a class
23
+	 * and returns that instead of creating a new one
24
+	 *
25
+	 * @access public
26
+	 * @param string $class_name
27
+	 * @return \ReflectionClass
28
+	 */
29
+	public function getReflectionClass($class_name);
30
+
31
+
32
+
33
+	/**
34
+	 * resolveDependencies
35
+	 * examines the constructor for the requested class to determine
36
+	 * if any dependencies exist, and if they can be injected.
37
+	 * If so, then those classes will be added to the array of arguments passed to the constructor
38
+	 * PLZ NOTE: this is achieved by type hinting the constructor params
39
+	 * For example:
40
+	 *        if attempting to load a class "Foo" with the following constructor:
41
+	 *        __construct( Bar $bar_class, Fighter $grohl_class )
42
+	 *        then $bar_class and $grohl_class will be added to the $arguments array,
43
+	 *        but only IF they are NOT already present in the incoming arguments array,
44
+	 *        and the correct classes can be loaded
45
+	 *
46
+	 * @access public
47
+	 * @param \EventEspresso\core\services\container\RecipeInterface $recipe
48
+	 * @param \ReflectionClass                                       $reflector
49
+	 * @param array                                                  $arguments
50
+	 * @return array
51
+	 */
52
+	public function resolveDependencies(RecipeInterface $recipe, \ReflectionClass $reflector, $arguments = array());
53 53
 
54 54
 }
55 55
 // End of file InjectorInterface.php
Please login to merge, or discard this patch.
core/services/container/SharedCoffeeMaker.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 namespace EventEspresso\core\services\container;
3 3
 
4 4
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
5
-    exit('No direct script access allowed');
5
+	exit('No direct script access allowed');
6 6
 }
7 7
 
8 8
 
@@ -24,46 +24,46 @@  discard block
 block discarded – undo
24 24
 
25 25
 
26 26
 
27
-    /**
28
-     * @return string
29
-     */
30
-    public function type()
31
-    {
32
-        return CoffeeMaker::BREW_SHARED;
33
-    }
27
+	/**
28
+	 * @return string
29
+	 */
30
+	public function type()
31
+	{
32
+		return CoffeeMaker::BREW_SHARED;
33
+	}
34 34
 
35 35
 
36 36
 
37
-    /**
38
-     * @param RecipeInterface $recipe
39
-     * @param array           $arguments
40
-     * @return mixed
41
-     */
42
-    public function brew(RecipeInterface $recipe, $arguments = array())
43
-    {
44
-        $this->resolveClassAndFilepath($recipe);
45
-        $reflector = $this->injector()->getReflectionClass($recipe->fqcn());
46
-        $method = $this->resolveInstantiationMethod($reflector);
47
-        switch ($method) {
48
-            case 'instance' :
49
-            case 'new_instance' :
50
-            case 'new_instance_from_db';
51
-                $service = call_user_func_array(
52
-                    array($reflector->getName(), $method),
53
-                    $this->injector()->resolveDependencies($recipe, $reflector, $arguments)
54
-                );
55
-                break;
56
-            case 'newInstance' :
57
-                $service = $reflector->newInstance();
58
-                break;
59
-            case 'newInstanceArgs' :
60
-            default :
61
-                $service = $reflector->newInstanceArgs(
62
-                    $this->injector()->resolveDependencies($recipe, $reflector, $arguments)
63
-                );
64
-        }
65
-        return $this->coffeePot()->addService($recipe->identifier(), $service);
66
-    }
37
+	/**
38
+	 * @param RecipeInterface $recipe
39
+	 * @param array           $arguments
40
+	 * @return mixed
41
+	 */
42
+	public function brew(RecipeInterface $recipe, $arguments = array())
43
+	{
44
+		$this->resolveClassAndFilepath($recipe);
45
+		$reflector = $this->injector()->getReflectionClass($recipe->fqcn());
46
+		$method = $this->resolveInstantiationMethod($reflector);
47
+		switch ($method) {
48
+			case 'instance' :
49
+			case 'new_instance' :
50
+			case 'new_instance_from_db';
51
+				$service = call_user_func_array(
52
+					array($reflector->getName(), $method),
53
+					$this->injector()->resolveDependencies($recipe, $reflector, $arguments)
54
+				);
55
+				break;
56
+			case 'newInstance' :
57
+				$service = $reflector->newInstance();
58
+				break;
59
+			case 'newInstanceArgs' :
60
+			default :
61
+				$service = $reflector->newInstanceArgs(
62
+					$this->injector()->resolveDependencies($recipe, $reflector, $arguments)
63
+				);
64
+		}
65
+		return $this->coffeePot()->addService($recipe->identifier(), $service);
66
+	}
67 67
 
68 68
 }
69 69
 // End of file SharedCoffeeMaker.php
Please login to merge, or discard this patch.
core/services/container/NewCoffeeMaker.php 2 patches
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 namespace EventEspresso\core\services\container;
3 3
 
4 4
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
5
-    exit('No direct script access allowed');
5
+	exit('No direct script access allowed');
6 6
 }
7 7
 
8 8
 
@@ -25,54 +25,54 @@  discard block
 block discarded – undo
25 25
 {
26 26
 
27 27
 
28
-    /**
29
-     * @return string
30
-     */
31
-    public function type()
32
-    {
33
-        return CoffeeMaker::BREW_NEW;
34
-    }
28
+	/**
29
+	 * @return string
30
+	 */
31
+	public function type()
32
+	{
33
+		return CoffeeMaker::BREW_NEW;
34
+	}
35 35
 
36 36
 
37 37
 
38
-    /**
39
-     * @param RecipeInterface $recipe
40
-     * @param array           $arguments
41
-     * @return mixed
42
-     */
43
-    public function brew(RecipeInterface $recipe, $arguments = array())
44
-    {
45
-        $this->resolveClassAndFilepath($recipe);
46
-        $reflector = $this->injector()->getReflectionClass($recipe->fqcn());
47
-        $method = $this->resolveInstantiationMethod($reflector);
48
-        switch ($method) {
49
-            case 'instance' :
50
-            case 'new_instance' :
51
-            case 'new_instance_from_db';
52
-                $injector = $this->injector();
53
-                $closure = function ($arguments) use ($recipe, $reflector, $method, $injector) {
54
-                    return call_user_func_array(
55
-                        array($reflector->getName(), $method),
56
-                        $injector->resolveDependencies($recipe, $reflector, $arguments)
57
-                    );
58
-                };
59
-                break;
60
-            case 'newInstance' :
61
-                $closure = function () use ($reflector) {
62
-                    return $reflector->newInstance();
63
-                };
64
-                break;
65
-            case 'newInstanceArgs' :
66
-            default :
67
-                $injector = $this->injector();
68
-                $closure = function ($arguments) use ($recipe, $reflector, $injector) {
69
-                    return $reflector->newInstanceArgs(
70
-                        $injector->resolveDependencies($recipe, $reflector, $arguments)
71
-                    );
72
-                };
73
-        }
74
-        return $this->coffeePot()->addClosure($recipe->identifier(), $closure);
75
-    }
38
+	/**
39
+	 * @param RecipeInterface $recipe
40
+	 * @param array           $arguments
41
+	 * @return mixed
42
+	 */
43
+	public function brew(RecipeInterface $recipe, $arguments = array())
44
+	{
45
+		$this->resolveClassAndFilepath($recipe);
46
+		$reflector = $this->injector()->getReflectionClass($recipe->fqcn());
47
+		$method = $this->resolveInstantiationMethod($reflector);
48
+		switch ($method) {
49
+			case 'instance' :
50
+			case 'new_instance' :
51
+			case 'new_instance_from_db';
52
+				$injector = $this->injector();
53
+				$closure = function ($arguments) use ($recipe, $reflector, $method, $injector) {
54
+					return call_user_func_array(
55
+						array($reflector->getName(), $method),
56
+						$injector->resolveDependencies($recipe, $reflector, $arguments)
57
+					);
58
+				};
59
+				break;
60
+			case 'newInstance' :
61
+				$closure = function () use ($reflector) {
62
+					return $reflector->newInstance();
63
+				};
64
+				break;
65
+			case 'newInstanceArgs' :
66
+			default :
67
+				$injector = $this->injector();
68
+				$closure = function ($arguments) use ($recipe, $reflector, $injector) {
69
+					return $reflector->newInstanceArgs(
70
+						$injector->resolveDependencies($recipe, $reflector, $arguments)
71
+					);
72
+				};
73
+		}
74
+		return $this->coffeePot()->addClosure($recipe->identifier(), $closure);
75
+	}
76 76
 
77 77
 
78 78
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -50,7 +50,7 @@  discard block
 block discarded – undo
50 50
             case 'new_instance' :
51 51
             case 'new_instance_from_db';
52 52
                 $injector = $this->injector();
53
-                $closure = function ($arguments) use ($recipe, $reflector, $method, $injector) {
53
+                $closure = function($arguments) use ($recipe, $reflector, $method, $injector) {
54 54
                     return call_user_func_array(
55 55
                         array($reflector->getName(), $method),
56 56
                         $injector->resolveDependencies($recipe, $reflector, $arguments)
@@ -58,14 +58,14 @@  discard block
 block discarded – undo
58 58
                 };
59 59
                 break;
60 60
             case 'newInstance' :
61
-                $closure = function () use ($reflector) {
61
+                $closure = function() use ($reflector) {
62 62
                     return $reflector->newInstance();
63 63
                 };
64 64
                 break;
65 65
             case 'newInstanceArgs' :
66 66
             default :
67 67
                 $injector = $this->injector();
68
-                $closure = function ($arguments) use ($recipe, $reflector, $injector) {
68
+                $closure = function($arguments) use ($recipe, $reflector, $injector) {
69 69
                     return $reflector->newInstanceArgs(
70 70
                         $injector->resolveDependencies($recipe, $reflector, $arguments)
71 71
                     );
Please login to merge, or discard this patch.
core/services/container/RecipeInterface.php 1 patch
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 namespace EventEspresso\core\services\container;
3 3
 
4 4
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
5
-    exit('No direct script access allowed');
5
+	exit('No direct script access allowed');
6 6
 }
7 7
 
8 8
 
@@ -17,84 +17,84 @@  discard block
 block discarded – undo
17 17
 interface RecipeInterface
18 18
 {
19 19
 
20
-    /**
21
-     * @return string
22
-     */
23
-    public function identifier();
24
-
25
-    /**
26
-     * @return string
27
-     */
28
-    public function fqcn();
29
-
30
-    /**
31
-     * @return array
32
-     */
33
-    public function ingredients();
34
-
35
-    /**
36
-     * @return string
37
-     */
38
-    public function type();
39
-
40
-    /**
41
-     * @return array
42
-     */
43
-    public function filters();
44
-
45
-    /**
46
-     * @return array
47
-     */
48
-    public function paths();
49
-
50
-    /**
51
-     * @param  string $identifier Identifier for the entity class that the Recipe applies to
52
-     *                            Typically a Fully Qualified Class Name
53
-     */
54
-    public function setIdentifier($identifier);
55
-
56
-    /**
57
-     * Ensures incoming string is a valid Fully Qualified Class Name,
58
-     * except if this is the default wildcard Recipe ( * ),
59
-     * or it's NOT an actual FQCN because the Recipe is using filepaths
60
-     * for classes that are not PSR-4 compatible
61
-     * PLZ NOTE:
62
-     *  Recipe::setFqcn() has a check to see if Recipe::$paths is empty or not,
63
-     *  therefore you should always call Recipe::setPaths() before Recipe::setFqcn()
64
-     *
65
-     * @param string $fqcn
66
-     */
67
-    public function setFqcn($fqcn);
68
-
69
-    /**
70
-     * @param array $ingredients    an array of dependencies where keys are the aliases and values are the FQCNs
71
-     *                              example:
72
-     *                              array( 'ClassInterface' => 'Fully\Qualified\ClassName' )
73
-     */
74
-    public function setIngredients(array $ingredients);
75
-
76
-    /**
77
-     * @param string $type one of the class constants returned from CoffeeMaker::getTypes()
78
-     */
79
-    public function setType($type = CoffeeMaker::BREW_NEW);
80
-
81
-    /**
82
-     * @param array $filters    an array of filters where keys are the aliases and values are the FQCNs
83
-     *                          example:
84
-     *                          array( 'ClassInterface' => 'Fully\Qualified\ClassName' )
85
-     */
86
-    public function setFilters(array $filters);
87
-
88
-    /**
89
-     * Ensures incoming paths is a valid filepath, or array of valid filepaths,
90
-     * and merges them in with any existing filepaths
91
-     * PLZ NOTE:
92
-     *  Recipe::setFqcn() has a check to see if Recipe::$paths is empty or not,
93
-     *  therefore you should always call Recipe::setPaths() before Recipe::setFqcn()
94
-     *
95
-     * @param string|array $paths
96
-     */
97
-    public function setPaths($paths = array());
20
+	/**
21
+	 * @return string
22
+	 */
23
+	public function identifier();
24
+
25
+	/**
26
+	 * @return string
27
+	 */
28
+	public function fqcn();
29
+
30
+	/**
31
+	 * @return array
32
+	 */
33
+	public function ingredients();
34
+
35
+	/**
36
+	 * @return string
37
+	 */
38
+	public function type();
39
+
40
+	/**
41
+	 * @return array
42
+	 */
43
+	public function filters();
44
+
45
+	/**
46
+	 * @return array
47
+	 */
48
+	public function paths();
49
+
50
+	/**
51
+	 * @param  string $identifier Identifier for the entity class that the Recipe applies to
52
+	 *                            Typically a Fully Qualified Class Name
53
+	 */
54
+	public function setIdentifier($identifier);
55
+
56
+	/**
57
+	 * Ensures incoming string is a valid Fully Qualified Class Name,
58
+	 * except if this is the default wildcard Recipe ( * ),
59
+	 * or it's NOT an actual FQCN because the Recipe is using filepaths
60
+	 * for classes that are not PSR-4 compatible
61
+	 * PLZ NOTE:
62
+	 *  Recipe::setFqcn() has a check to see if Recipe::$paths is empty or not,
63
+	 *  therefore you should always call Recipe::setPaths() before Recipe::setFqcn()
64
+	 *
65
+	 * @param string $fqcn
66
+	 */
67
+	public function setFqcn($fqcn);
68
+
69
+	/**
70
+	 * @param array $ingredients    an array of dependencies where keys are the aliases and values are the FQCNs
71
+	 *                              example:
72
+	 *                              array( 'ClassInterface' => 'Fully\Qualified\ClassName' )
73
+	 */
74
+	public function setIngredients(array $ingredients);
75
+
76
+	/**
77
+	 * @param string $type one of the class constants returned from CoffeeMaker::getTypes()
78
+	 */
79
+	public function setType($type = CoffeeMaker::BREW_NEW);
80
+
81
+	/**
82
+	 * @param array $filters    an array of filters where keys are the aliases and values are the FQCNs
83
+	 *                          example:
84
+	 *                          array( 'ClassInterface' => 'Fully\Qualified\ClassName' )
85
+	 */
86
+	public function setFilters(array $filters);
87
+
88
+	/**
89
+	 * Ensures incoming paths is a valid filepath, or array of valid filepaths,
90
+	 * and merges them in with any existing filepaths
91
+	 * PLZ NOTE:
92
+	 *  Recipe::setFqcn() has a check to see if Recipe::$paths is empty or not,
93
+	 *  therefore you should always call Recipe::setPaths() before Recipe::setFqcn()
94
+	 *
95
+	 * @param string|array $paths
96
+	 */
97
+	public function setPaths($paths = array());
98 98
 
99 99
 }
100 100
 // End of file RecipeInterface.php
Please login to merge, or discard this patch.
core/EE_Network_Config.core.php 2 patches
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
 	 */
59 59
 	public static function instance() {
60 60
 		// check if class object is instantiated, and instantiated properly
61
-		if ( self::$_instance === NULL  or ! is_object( self::$_instance ) or ! ( self::$_instance instanceof EE_Network_Config )) {
61
+		if (self::$_instance === NULL or ! is_object(self::$_instance) or ! (self::$_instance instanceof EE_Network_Config)) {
62 62
 			self::$_instance = new self();
63 63
 		}
64 64
 		return self::$_instance;
@@ -73,15 +73,15 @@  discard block
 block discarded – undo
73 73
 	 *  @access 	private
74 74
 	 */
75 75
 	private function __construct() {
76
-		do_action( 'AHEE__EE_Network_Config__construct__begin',$this );
76
+		do_action('AHEE__EE_Network_Config__construct__begin', $this);
77 77
 		//set defaults
78
-		$this->core = apply_filters( 'FHEE__EE_Network_Config___construct__core', new EE_Network_Core_Config() );
78
+		$this->core = apply_filters('FHEE__EE_Network_Config___construct__core', new EE_Network_Core_Config());
79 79
 		$this->addons = array();
80 80
 
81 81
 		$this->_load_config();
82 82
 
83 83
 		// construct__end hook
84
-		do_action( 'AHEE__EE_Network_Config__construct__end',$this );
84
+		do_action('AHEE__EE_Network_Config__construct__end', $this);
85 85
 	}
86 86
 
87 87
 
@@ -94,25 +94,25 @@  discard block
 block discarded – undo
94 94
 	 */
95 95
 	private function _load_config() {
96 96
 		//load network config start hook
97
-		do_action( 'AHEE__EE_Network_Config___load_config__start', $this );
97
+		do_action('AHEE__EE_Network_Config___load_config__start', $this);
98 98
 		$config = $this->get_config();
99
-		foreach ( $config as $config_prop => $settings ) {
100
-			if ( is_object( $settings ) && property_exists( $this, $config_prop ) ) {
101
-				$this->{$config_prop} = apply_filters( 'FHEE__EE_Network_Config___load_config__config_settings', $settings, $config_prop, $this );
102
-				if ( method_exists( $settings, 'populate' ) ) {
99
+		foreach ($config as $config_prop => $settings) {
100
+			if (is_object($settings) && property_exists($this, $config_prop)) {
101
+				$this->{$config_prop} = apply_filters('FHEE__EE_Network_Config___load_config__config_settings', $settings, $config_prop, $this);
102
+				if (method_exists($settings, 'populate')) {
103 103
 					$this->{$config_prop}->populate();
104 104
 				}
105
-				if ( method_exists( $settings, 'do_hooks' ) ) {
105
+				if (method_exists($settings, 'do_hooks')) {
106 106
 					$this->{$config_prop}->do_hooks();
107 107
 				}
108 108
 			}
109 109
 		}
110
-		if ( apply_filters( 'FHEE__EE_Network_Config___load_config__update_network_config', false ) ) {
110
+		if (apply_filters('FHEE__EE_Network_Config___load_config__update_network_config', false)) {
111 111
 			$this->update_config();
112 112
 		}
113 113
 
114 114
 		//load network config end hook
115
-		do_action( 'AHEE__EE_Network_Config___load_config__end', $this );
115
+		do_action('AHEE__EE_Network_Config___load_config__end', $this);
116 116
 	}
117 117
 
118 118
 
@@ -126,8 +126,8 @@  discard block
 block discarded – undo
126 126
 	 */
127 127
 	public function get_config() {
128 128
 		// grab network configuration
129
-		$CFG = get_site_option( 'ee_network_config', array() );
130
-		$CFG = apply_filters( 'FHEE__EE_Network_Config__get_config__CFG', $CFG );
129
+		$CFG = get_site_option('ee_network_config', array());
130
+		$CFG = apply_filters('FHEE__EE_Network_Config__get_config__CFG', $CFG);
131 131
 		return $CFG;
132 132
 	}
133 133
 
@@ -141,39 +141,39 @@  discard block
 block discarded – undo
141 141
 	 * @param bool $add_error
142 142
 	 * @return bool success
143 143
 	 */
144
-	public function update_config( $add_success = FALSE, $add_error = TRUE ) {
145
-		do_action( 'AHEE__EE_Network_Config__update_config__begin',$this );
144
+	public function update_config($add_success = FALSE, $add_error = TRUE) {
145
+		do_action('AHEE__EE_Network_Config__update_config__begin', $this);
146 146
 
147 147
 		//need to bust cache for comparing original if this is a multisite install
148
-		if ( is_multisite() ) {
148
+		if (is_multisite()) {
149 149
 			global $current_site;
150
-			$cache_key = $current_site->id . ':ee_network_config';
151
-			wp_cache_delete( $cache_key, 'site-options' );
150
+			$cache_key = $current_site->id.':ee_network_config';
151
+			wp_cache_delete($cache_key, 'site-options');
152 152
 		}
153 153
 
154 154
 		//we have to compare existing saved config with config in memory because if there is no difference that means
155 155
 		//that the method executed fine but there just was no update.  WordPress doesn't distinguish between false because
156 156
 		//there were 0 records updated because of no change vs false because some error produced problems with the update.
157
-		$original = get_site_option( 'ee_network_config' );
157
+		$original = get_site_option('ee_network_config');
158 158
 
159
-		if ( $original == $this ) {
159
+		if ($original == $this) {
160 160
 			return true;
161 161
 		}
162 162
 		// update
163
-		$saved = update_site_option( 'ee_network_config', $this );
163
+		$saved = update_site_option('ee_network_config', $this);
164 164
 
165
-		do_action( 'AHEE__EE_Network_Config__update_config__end', $this, $saved );
165
+		do_action('AHEE__EE_Network_Config__update_config__end', $this, $saved);
166 166
 		// if config remains the same or was updated successfully
167
-		if ( $saved ) {
168
-			if ( $add_success ) {
169
-				$msg = is_multisite() ? __( 'The Event Espresso Network Configuration Settings have been successfully updated.', 'event_espresso' ) : __( 'Extra Event Espresso Configuration settings were successfully updated.', 'event_espresso' );
170
-				EE_Error::add_success( $msg );
167
+		if ($saved) {
168
+			if ($add_success) {
169
+				$msg = is_multisite() ? __('The Event Espresso Network Configuration Settings have been successfully updated.', 'event_espresso') : __('Extra Event Espresso Configuration settings were successfully updated.', 'event_espresso');
170
+				EE_Error::add_success($msg);
171 171
 			}
172 172
 			return true;
173 173
 		} else {
174
-			if ( $add_error ) {
175
-				$msg = is_multisite() ? __( 'The Event Espresso Network Configuration Settings were not updated.', 'event_espresso' ) : __( 'Extra Event Espresso Network Configuration settings were not updated.', 'event_espresso' );
176
-				EE_Error::add_error( $msg , __FILE__, __FUNCTION__, __LINE__ );
174
+			if ($add_error) {
175
+				$msg = is_multisite() ? __('The Event Espresso Network Configuration Settings were not updated.', 'event_espresso') : __('Extra Event Espresso Network Configuration settings were not updated.', 'event_espresso');
176
+				EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
177 177
 			}
178 178
 			return false;
179 179
 		}
@@ -187,9 +187,9 @@  discard block
 block discarded – undo
187 187
 	 *  @return 	array
188 188
 	 */
189 189
 	public function __sleep() {
190
-		return apply_filters( 'FHEE__EE_Network_Config__sleep',array(
190
+		return apply_filters('FHEE__EE_Network_Config__sleep', array(
191 191
 			'core',
192
-		) );
192
+		));
193 193
 	}
194 194
 
195 195
 } //end EE_Network_Config.
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,4 +1,6 @@
 block discarded – undo
1
-<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) exit('No direct script access allowed');
1
+<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) {
2
+	exit('No direct script access allowed');
3
+}
2 4
 /**
3 5
  * Event Espresso
4 6
  *
Please login to merge, or discard this patch.
core/domain/services/capabilities/PublicCapabilities.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -20,13 +20,13 @@
 block discarded – undo
20 20
 {
21 21
 
22 22
 
23
-    /**
24
-     * @return string
25
-     */
26
-    public function capability()
27
-    {
28
-        return '';
29
-    }
23
+	/**
24
+	 * @return string
25
+	 */
26
+	public function capability()
27
+	{
28
+		return '';
29
+	}
30 30
 
31 31
 
32 32
 }
Please login to merge, or discard this patch.
core/domain/services/capabilities/CapCheckInterface.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -13,20 +13,20 @@
 block discarded – undo
13 13
 interface CapCheckInterface
14 14
 {
15 15
 
16
-    /**
17
-     * @return string
18
-     */
19
-    public function capability();
16
+	/**
17
+	 * @return string
18
+	 */
19
+	public function capability();
20 20
 
21
-    /**
22
-     * @return string
23
-     */
24
-    public function context();
21
+	/**
22
+	 * @return string
23
+	 */
24
+	public function context();
25 25
 
26
-    /**
27
-     * @return int|string
28
-     */
29
-    public function ID();
26
+	/**
27
+	 * @return int|string
28
+	 */
29
+	public function ID();
30 30
 
31 31
 }
32 32
 // End of file CapCheckInterface.php
Please login to merge, or discard this patch.
core/services/commands/registration/CreateRegistrationCommand.php 1 patch
Indentation   +137 added lines, -137 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 use EventEspresso\core\services\commands\CommandRequiresCapCheckInterface;
9 9
 
10 10
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
11
-    exit('No direct script access allowed');
11
+	exit('No direct script access allowed');
12 12
 }
13 13
 
14 14
 
@@ -24,142 +24,142 @@  discard block
 block discarded – undo
24 24
 class CreateRegistrationCommand extends Command implements CommandRequiresCapCheckInterface
25 25
 {
26 26
 
27
-    /**
28
-     * @var \EE_Transaction $transaction
29
-     */
30
-    private $transaction;
31
-
32
-    /**
33
-     * @var \EE_Ticket $ticket
34
-     */
35
-    private $ticket;
36
-
37
-    /**
38
-     * @var \EE_Line_Item $ticket_line_item
39
-     */
40
-    private $ticket_line_item;
41
-
42
-    /**
43
-     * @var int $reg_count
44
-     */
45
-    private $reg_count = 1;
46
-
47
-    /**
48
-     * @var int $reg_group_size
49
-     */
50
-    private $reg_group_size = 0;
51
-
52
-    /**
53
-     * @var \EE_Registration $registration
54
-     */
55
-    protected $registration;
56
-
57
-
58
-
59
-    /**
60
-     * CreateRegistrationCommand constructor.
61
-     *
62
-     * @param \EE_Transaction $transaction
63
-     * @param \EE_Line_Item   $ticket_line_item
64
-     * @param int             $reg_count
65
-     * @param int             $reg_group_size
66
-     */
67
-    public function __construct(
68
-        \EE_Transaction $transaction,
69
-        \EE_Line_Item $ticket_line_item,
70
-        $reg_count = 1,
71
-        $reg_group_size = 0
72
-    ) {
73
-        // grab the related ticket object for this line_item
74
-        $this->ticket = $ticket_line_item->ticket();
75
-        if ( ! $this->ticket instanceof \EE_Ticket) {
76
-            throw new InvalidEntityException(
77
-                is_object($this->ticket) ? get_class($this->ticket) : gettype($this->ticket),
78
-                'EE_Ticket',
79
-                sprintf(
80
-                    __("Line item %s did not contain a valid ticket", "event_espresso"),
81
-                    $ticket_line_item->ID()
82
-                )
83
-            );
84
-        }
85
-        $this->transaction = $transaction;
86
-        $this->ticket_line_item = $ticket_line_item;
87
-        $this->reg_count = absint($reg_count);
88
-        $this->reg_group_size = absint($reg_group_size);
89
-    }
90
-
91
-
92
-
93
-    /**
94
-     * @return \EventEspresso\core\domain\services\capabilities\CapCheckInterface
95
-     */
96
-    public function getCapCheck()
97
-    {
98
-        if ( ! $this->cap_check instanceof CapCheckInterface) {
99
-            return new CapCheck('ee_edit_registrations', 'create_new_registration');
100
-        }
101
-        return $this->cap_check;
102
-    }
103
-
104
-
105
-
106
-    /**
107
-     * @return \EE_Transaction
108
-     */
109
-    public function transaction()
110
-    {
111
-        return $this->transaction;
112
-    }
113
-
114
-
115
-
116
-    /**
117
-     * @return \EE_Ticket
118
-     */
119
-    public function ticket()
120
-    {
121
-        return $this->ticket;
122
-    }
123
-
124
-
125
-
126
-    /**
127
-     * @return \EE_Line_Item
128
-     */
129
-    public function ticketLineItem()
130
-    {
131
-        return $this->ticket_line_item;
132
-    }
133
-
134
-
135
-
136
-    /**
137
-     * @return int
138
-     */
139
-    public function regCount()
140
-    {
141
-        return $this->reg_count;
142
-    }
143
-
144
-
145
-
146
-    /**
147
-     * @return int
148
-     */
149
-    public function regGroupSize()
150
-    {
151
-        return $this->reg_group_size;
152
-    }
153
-
154
-
155
-
156
-    /**
157
-     * @return \EE_Registration
158
-     */
159
-    public function registration()
160
-    {
161
-        return $this->registration;
162
-    }
27
+	/**
28
+	 * @var \EE_Transaction $transaction
29
+	 */
30
+	private $transaction;
31
+
32
+	/**
33
+	 * @var \EE_Ticket $ticket
34
+	 */
35
+	private $ticket;
36
+
37
+	/**
38
+	 * @var \EE_Line_Item $ticket_line_item
39
+	 */
40
+	private $ticket_line_item;
41
+
42
+	/**
43
+	 * @var int $reg_count
44
+	 */
45
+	private $reg_count = 1;
46
+
47
+	/**
48
+	 * @var int $reg_group_size
49
+	 */
50
+	private $reg_group_size = 0;
51
+
52
+	/**
53
+	 * @var \EE_Registration $registration
54
+	 */
55
+	protected $registration;
56
+
57
+
58
+
59
+	/**
60
+	 * CreateRegistrationCommand constructor.
61
+	 *
62
+	 * @param \EE_Transaction $transaction
63
+	 * @param \EE_Line_Item   $ticket_line_item
64
+	 * @param int             $reg_count
65
+	 * @param int             $reg_group_size
66
+	 */
67
+	public function __construct(
68
+		\EE_Transaction $transaction,
69
+		\EE_Line_Item $ticket_line_item,
70
+		$reg_count = 1,
71
+		$reg_group_size = 0
72
+	) {
73
+		// grab the related ticket object for this line_item
74
+		$this->ticket = $ticket_line_item->ticket();
75
+		if ( ! $this->ticket instanceof \EE_Ticket) {
76
+			throw new InvalidEntityException(
77
+				is_object($this->ticket) ? get_class($this->ticket) : gettype($this->ticket),
78
+				'EE_Ticket',
79
+				sprintf(
80
+					__("Line item %s did not contain a valid ticket", "event_espresso"),
81
+					$ticket_line_item->ID()
82
+				)
83
+			);
84
+		}
85
+		$this->transaction = $transaction;
86
+		$this->ticket_line_item = $ticket_line_item;
87
+		$this->reg_count = absint($reg_count);
88
+		$this->reg_group_size = absint($reg_group_size);
89
+	}
90
+
91
+
92
+
93
+	/**
94
+	 * @return \EventEspresso\core\domain\services\capabilities\CapCheckInterface
95
+	 */
96
+	public function getCapCheck()
97
+	{
98
+		if ( ! $this->cap_check instanceof CapCheckInterface) {
99
+			return new CapCheck('ee_edit_registrations', 'create_new_registration');
100
+		}
101
+		return $this->cap_check;
102
+	}
103
+
104
+
105
+
106
+	/**
107
+	 * @return \EE_Transaction
108
+	 */
109
+	public function transaction()
110
+	{
111
+		return $this->transaction;
112
+	}
113
+
114
+
115
+
116
+	/**
117
+	 * @return \EE_Ticket
118
+	 */
119
+	public function ticket()
120
+	{
121
+		return $this->ticket;
122
+	}
123
+
124
+
125
+
126
+	/**
127
+	 * @return \EE_Line_Item
128
+	 */
129
+	public function ticketLineItem()
130
+	{
131
+		return $this->ticket_line_item;
132
+	}
133
+
134
+
135
+
136
+	/**
137
+	 * @return int
138
+	 */
139
+	public function regCount()
140
+	{
141
+		return $this->reg_count;
142
+	}
143
+
144
+
145
+
146
+	/**
147
+	 * @return int
148
+	 */
149
+	public function regGroupSize()
150
+	{
151
+		return $this->reg_group_size;
152
+	}
153
+
154
+
155
+
156
+	/**
157
+	 * @return \EE_Registration
158
+	 */
159
+	public function registration()
160
+	{
161
+		return $this->registration;
162
+	}
163 163
 
164 164
 
165 165
 
Please login to merge, or discard this patch.