Passed
Push — develop ( 53bd5d...0226de )
by Paul
03:06
created
src/Forms/Form.php 3 patches
Indentation   +251 added lines, -251 removed lines patch added patch discarded remove patch
@@ -7,255 +7,255 @@
 block discarded – undo
7 7
 
8 8
 class Form
9 9
 {
10
-    /**
11
-     * @var array
12
-     */
13
-    protected $args;
14
-
15
-    /**
16
-     * @var array
17
-     */
18
-    protected $dependencies;
19
-
20
-    /**
21
-     * @var Field
22
-     */
23
-    protected $field;
24
-
25
-    /**
26
-     * @var array
27
-     */
28
-    protected $fields;
29
-
30
-    /**
31
-     * @var Normalizer
32
-     */
33
-    protected $normalize;
34
-
35
-    public function __construct(Field $field, Normalizer $normalize)
36
-    {
37
-        $this->args = [];
38
-        $this->dependencies = [];
39
-        $this->field = $field;
40
-        $this->fields = [];
41
-        $this->normalize = $normalize;
42
-    }
43
-
44
-    /**
45
-     * @param string $property
46
-     *
47
-     * @return mixed
48
-     * @throws Exception
49
-     */
50
-    public function __get($property)
51
-    {
52
-        switch ($property) {
53
-            case 'args':
54
-            case 'dependencies':
55
-            case 'fields':
56
-                return $this->$property;
57
-        }
58
-        throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
59
-    }
60
-
61
-    /**
62
-     * @param string $property
63
-     * @param string $value
64
-     *
65
-     * @return void
66
-     * @throws Exception
67
-     */
68
-    public function __set($property, $value)
69
-    {
70
-        switch ($property) {
71
-            case 'args':
72
-            case 'dependencies':
73
-            case 'fields':
74
-                $this->$property = $value;
75
-                break;
76
-            default:
77
-                throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
78
-        }
79
-    }
80
-
81
-    /**
82
-     * Add a field to the form.
83
-     *
84
-     * @return Form
85
-     */
86
-    public function addField(array $args = [])
87
-    {
88
-        $field = $this->field->normalize($args);
89
-
90
-        if (false !== $field->args['render']) {
91
-            $this->dependencies = array_unique(
92
-                array_merge($field->dependencies, $this->dependencies)
93
-            );
94
-            $this->fields[] = $field;
95
-        }
96
-
97
-        return $this;
98
-    }
99
-
100
-    /**
101
-     * Normalize the form arguments.
102
-     *
103
-     * @return Form
104
-     */
105
-    public function normalize(array $args = [])
106
-    {
107
-        $defaults = [
108
-            'action' => '',
109
-            'attributes' => '',
110
-            'id' => '',
111
-            'class' => '',
112
-            'enctype' => 'multipart/form-data',
113
-            'method' => 'post',
114
-            'nonce' => '',
115
-            'submit' => __('Submit', 'site-reviews'),
116
-        ];
117
-
118
-        $this->args = array_merge($defaults, $args);
119
-
120
-        $attributes = $this->normalize->form($this->args, 'implode');
121
-
122
-        $this->args['attributes'] = $attributes;
123
-
124
-        return $this;
125
-    }
126
-
127
-    /**
128
-     * Render the form.
129
-     *
130
-     * @param mixed $print
131
-     *
132
-     * @return string|void
133
-     */
134
-    public function render($print = true)
135
-    {
136
-        $rendered = sprintf('<form %s>%s%s</form>',
137
-            $this->args['attributes'],
138
-            $this->generateFields(),
139
-            $this->generateSubmitButton()
140
-        );
141
-
142
-        if ((bool) $print && 'return' !== $print) {
143
-            echo $rendered;
144
-        }
145
-
146
-        return $rendered;
147
-    }
148
-
149
-    /**
150
-     * Reset the Form.
151
-     *
152
-     * @return Form
153
-     */
154
-    public function reset()
155
-    {
156
-        $this->args = [];
157
-        $this->dependencies = [];
158
-        $this->fields = [];
159
-        return $this;
160
-    }
161
-
162
-    /**
163
-     * Generate the form fields.
164
-     *
165
-     * @return string
166
-     */
167
-    protected function generateFields()
168
-    {
169
-        $hiddenFields = '';
170
-
171
-        $fields = array_reduce($this->fields, function ($carry, $formField) use (&$hiddenFields) {
172
-            $stringLegend = '<legend class="screen-reader-text"><span>%s</span></legend>';
173
-            $stringFieldset = '<fieldset%s>%s%s</fieldset>';
174
-            $stringRendered = '<tr class="glsr-field %s"><th scope="row">%s</th><td>%s</td></tr>';
175
-            $outsideRendered = '</tbody></table>%s<table class="form-table"><tbody>';
176
-
177
-            // set field value only when rendering because we need to check the default setting
178
-            // against the database
179
-            $field = $formField->setValue()->getField();
180
-
181
-            $multi = true === $field->multi;
182
-            $label = $field->generateLabel();
183
-            $rendered = $field->render();
184
-
185
-            // render hidden inputs outside the table
186
-            if ('hidden' === $field->args['type']) {
187
-                $hiddenFields .= $rendered;
188
-                return $carry;
189
-            }
190
-
191
-            $hiddenClass = $this->isFieldHidden($formField) ? 'hidden' : '';
192
-
193
-            if ($multi) {
194
-                if ($depends = $formField->getDataDepends()) {
195
-                    $depends = sprintf(' data-depends=\'%s\'', json_encode($depends));
196
-                }
197
-
198
-                $legend = $label ? sprintf($stringLegend, $label) : '';
199
-                $rendered = sprintf($stringFieldset, $depends, $legend, $rendered);
200
-            }
201
-
202
-            $renderedField = $field->outside
203
-                ? sprintf($outsideRendered, $rendered)
204
-                : sprintf($stringRendered, $hiddenClass, $label, $rendered);
205
-
206
-            return $carry.$renderedField;
207
-        });
208
-
209
-        return sprintf('<table class="form-table"><tbody>%s</tbody></table>%s', $fields, $hiddenFields);
210
-    }
211
-
212
-    /**
213
-     * Generate the form submit button.
214
-     *
215
-     * @return string|null
216
-     */
217
-    protected function generateSubmitButton()
218
-    {
219
-        $args = $this->args['submit'];
220
-
221
-        is_array($args) ?: $args = ['text' => $args];
222
-
223
-        $args = shortcode_atts([
224
-            'text' => __('Save Changes', 'site-reviews'),
225
-            'type' => 'primary',
226
-            'name' => 'submit',
227
-            'wrap' => true,
228
-            'other_attributes' => null,
229
-        ], $args);
230
-
231
-        if (is_admin()) {
232
-            ob_start();
233
-            submit_button($args['text'], $args['type'], $args['name'], $args['wrap'], $args['other_attributes']);
234
-            return ob_get_clean();
235
-        }
236
-    }
237
-
238
-    /**
239
-     * @param object $field GeminiLabs\Castor\Form\Fields\*
240
-     *
241
-     * @return bool|null
242
-     */
243
-    protected function isFieldHidden($field)
244
-    {
245
-        if (!($dependsOn = $field->getDataDepends())) {
246
-            return;
247
-        }
248
-
249
-        foreach ($this->fields as $formField) {
250
-            if ($dependsOn['name'] !== $formField->args['name']) {
251
-                continue;
252
-            }
253
-
254
-            if (is_array($dependsOn['value'])) {
255
-                return !in_array($formField->args['value'], $dependsOn['value']);
256
-            }
257
-
258
-            return $dependsOn['value'] != $formField->args['value'];
259
-        }
260
-    }
10
+	/**
11
+	 * @var array
12
+	 */
13
+	protected $args;
14
+
15
+	/**
16
+	 * @var array
17
+	 */
18
+	protected $dependencies;
19
+
20
+	/**
21
+	 * @var Field
22
+	 */
23
+	protected $field;
24
+
25
+	/**
26
+	 * @var array
27
+	 */
28
+	protected $fields;
29
+
30
+	/**
31
+	 * @var Normalizer
32
+	 */
33
+	protected $normalize;
34
+
35
+	public function __construct(Field $field, Normalizer $normalize)
36
+	{
37
+		$this->args = [];
38
+		$this->dependencies = [];
39
+		$this->field = $field;
40
+		$this->fields = [];
41
+		$this->normalize = $normalize;
42
+	}
43
+
44
+	/**
45
+	 * @param string $property
46
+	 *
47
+	 * @return mixed
48
+	 * @throws Exception
49
+	 */
50
+	public function __get($property)
51
+	{
52
+		switch ($property) {
53
+			case 'args':
54
+			case 'dependencies':
55
+			case 'fields':
56
+				return $this->$property;
57
+		}
58
+		throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
59
+	}
60
+
61
+	/**
62
+	 * @param string $property
63
+	 * @param string $value
64
+	 *
65
+	 * @return void
66
+	 * @throws Exception
67
+	 */
68
+	public function __set($property, $value)
69
+	{
70
+		switch ($property) {
71
+			case 'args':
72
+			case 'dependencies':
73
+			case 'fields':
74
+				$this->$property = $value;
75
+				break;
76
+			default:
77
+				throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
78
+		}
79
+	}
80
+
81
+	/**
82
+	 * Add a field to the form.
83
+	 *
84
+	 * @return Form
85
+	 */
86
+	public function addField(array $args = [])
87
+	{
88
+		$field = $this->field->normalize($args);
89
+
90
+		if (false !== $field->args['render']) {
91
+			$this->dependencies = array_unique(
92
+				array_merge($field->dependencies, $this->dependencies)
93
+			);
94
+			$this->fields[] = $field;
95
+		}
96
+
97
+		return $this;
98
+	}
99
+
100
+	/**
101
+	 * Normalize the form arguments.
102
+	 *
103
+	 * @return Form
104
+	 */
105
+	public function normalize(array $args = [])
106
+	{
107
+		$defaults = [
108
+			'action' => '',
109
+			'attributes' => '',
110
+			'id' => '',
111
+			'class' => '',
112
+			'enctype' => 'multipart/form-data',
113
+			'method' => 'post',
114
+			'nonce' => '',
115
+			'submit' => __('Submit', 'site-reviews'),
116
+		];
117
+
118
+		$this->args = array_merge($defaults, $args);
119
+
120
+		$attributes = $this->normalize->form($this->args, 'implode');
121
+
122
+		$this->args['attributes'] = $attributes;
123
+
124
+		return $this;
125
+	}
126
+
127
+	/**
128
+	 * Render the form.
129
+	 *
130
+	 * @param mixed $print
131
+	 *
132
+	 * @return string|void
133
+	 */
134
+	public function render($print = true)
135
+	{
136
+		$rendered = sprintf('<form %s>%s%s</form>',
137
+			$this->args['attributes'],
138
+			$this->generateFields(),
139
+			$this->generateSubmitButton()
140
+		);
141
+
142
+		if ((bool) $print && 'return' !== $print) {
143
+			echo $rendered;
144
+		}
145
+
146
+		return $rendered;
147
+	}
148
+
149
+	/**
150
+	 * Reset the Form.
151
+	 *
152
+	 * @return Form
153
+	 */
154
+	public function reset()
155
+	{
156
+		$this->args = [];
157
+		$this->dependencies = [];
158
+		$this->fields = [];
159
+		return $this;
160
+	}
161
+
162
+	/**
163
+	 * Generate the form fields.
164
+	 *
165
+	 * @return string
166
+	 */
167
+	protected function generateFields()
168
+	{
169
+		$hiddenFields = '';
170
+
171
+		$fields = array_reduce($this->fields, function ($carry, $formField) use (&$hiddenFields) {
172
+			$stringLegend = '<legend class="screen-reader-text"><span>%s</span></legend>';
173
+			$stringFieldset = '<fieldset%s>%s%s</fieldset>';
174
+			$stringRendered = '<tr class="glsr-field %s"><th scope="row">%s</th><td>%s</td></tr>';
175
+			$outsideRendered = '</tbody></table>%s<table class="form-table"><tbody>';
176
+
177
+			// set field value only when rendering because we need to check the default setting
178
+			// against the database
179
+			$field = $formField->setValue()->getField();
180
+
181
+			$multi = true === $field->multi;
182
+			$label = $field->generateLabel();
183
+			$rendered = $field->render();
184
+
185
+			// render hidden inputs outside the table
186
+			if ('hidden' === $field->args['type']) {
187
+				$hiddenFields .= $rendered;
188
+				return $carry;
189
+			}
190
+
191
+			$hiddenClass = $this->isFieldHidden($formField) ? 'hidden' : '';
192
+
193
+			if ($multi) {
194
+				if ($depends = $formField->getDataDepends()) {
195
+					$depends = sprintf(' data-depends=\'%s\'', json_encode($depends));
196
+				}
197
+
198
+				$legend = $label ? sprintf($stringLegend, $label) : '';
199
+				$rendered = sprintf($stringFieldset, $depends, $legend, $rendered);
200
+			}
201
+
202
+			$renderedField = $field->outside
203
+				? sprintf($outsideRendered, $rendered)
204
+				: sprintf($stringRendered, $hiddenClass, $label, $rendered);
205
+
206
+			return $carry.$renderedField;
207
+		});
208
+
209
+		return sprintf('<table class="form-table"><tbody>%s</tbody></table>%s', $fields, $hiddenFields);
210
+	}
211
+
212
+	/**
213
+	 * Generate the form submit button.
214
+	 *
215
+	 * @return string|null
216
+	 */
217
+	protected function generateSubmitButton()
218
+	{
219
+		$args = $this->args['submit'];
220
+
221
+		is_array($args) ?: $args = ['text' => $args];
222
+
223
+		$args = shortcode_atts([
224
+			'text' => __('Save Changes', 'site-reviews'),
225
+			'type' => 'primary',
226
+			'name' => 'submit',
227
+			'wrap' => true,
228
+			'other_attributes' => null,
229
+		], $args);
230
+
231
+		if (is_admin()) {
232
+			ob_start();
233
+			submit_button($args['text'], $args['type'], $args['name'], $args['wrap'], $args['other_attributes']);
234
+			return ob_get_clean();
235
+		}
236
+	}
237
+
238
+	/**
239
+	 * @param object $field GeminiLabs\Castor\Form\Fields\*
240
+	 *
241
+	 * @return bool|null
242
+	 */
243
+	protected function isFieldHidden($field)
244
+	{
245
+		if (!($dependsOn = $field->getDataDepends())) {
246
+			return;
247
+		}
248
+
249
+		foreach ($this->fields as $formField) {
250
+			if ($dependsOn['name'] !== $formField->args['name']) {
251
+				continue;
252
+			}
253
+
254
+			if (is_array($dependsOn['value'])) {
255
+				return !in_array($formField->args['value'], $dependsOn['value']);
256
+			}
257
+
258
+			return $dependsOn['value'] != $formField->args['value'];
259
+		}
260
+	}
261 261
 }
Please login to merge, or discard this patch.
Spacing   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
      */
33 33
     protected $normalize;
34 34
 
35
-    public function __construct(Field $field, Normalizer $normalize)
35
+    public function __construct( Field $field, Normalizer $normalize )
36 36
     {
37 37
         $this->args = [];
38 38
         $this->dependencies = [];
@@ -47,15 +47,15 @@  discard block
 block discarded – undo
47 47
      * @return mixed
48 48
      * @throws Exception
49 49
      */
50
-    public function __get($property)
50
+    public function __get( $property )
51 51
     {
52
-        switch ($property) {
52
+        switch( $property ) {
53 53
             case 'args':
54 54
             case 'dependencies':
55 55
             case 'fields':
56 56
                 return $this->$property;
57 57
         }
58
-        throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
58
+        throw new Exception( sprintf( 'Invalid %s property: %s', __CLASS__, $property ) );
59 59
     }
60 60
 
61 61
     /**
@@ -65,16 +65,16 @@  discard block
 block discarded – undo
65 65
      * @return void
66 66
      * @throws Exception
67 67
      */
68
-    public function __set($property, $value)
68
+    public function __set( $property, $value )
69 69
     {
70
-        switch ($property) {
70
+        switch( $property ) {
71 71
             case 'args':
72 72
             case 'dependencies':
73 73
             case 'fields':
74 74
                 $this->$property = $value;
75 75
                 break;
76 76
             default:
77
-                throw new Exception(sprintf('Invalid %s property: %s', __CLASS__, $property));
77
+                throw new Exception( sprintf( 'Invalid %s property: %s', __CLASS__, $property ) );
78 78
         }
79 79
     }
80 80
 
@@ -83,13 +83,13 @@  discard block
 block discarded – undo
83 83
      *
84 84
      * @return Form
85 85
      */
86
-    public function addField(array $args = [])
86
+    public function addField( array $args = [] )
87 87
     {
88
-        $field = $this->field->normalize($args);
88
+        $field = $this->field->normalize( $args );
89 89
 
90
-        if (false !== $field->args['render']) {
90
+        if( false !== $field->args['render'] ) {
91 91
             $this->dependencies = array_unique(
92
-                array_merge($field->dependencies, $this->dependencies)
92
+                array_merge( $field->dependencies, $this->dependencies )
93 93
             );
94 94
             $this->fields[] = $field;
95 95
         }
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
      *
103 103
      * @return Form
104 104
      */
105
-    public function normalize(array $args = [])
105
+    public function normalize( array $args = [] )
106 106
     {
107 107
         $defaults = [
108 108
             'action' => '',
@@ -112,12 +112,12 @@  discard block
 block discarded – undo
112 112
             'enctype' => 'multipart/form-data',
113 113
             'method' => 'post',
114 114
             'nonce' => '',
115
-            'submit' => __('Submit', 'site-reviews'),
115
+            'submit' => __( 'Submit', 'site-reviews' ),
116 116
         ];
117 117
 
118
-        $this->args = array_merge($defaults, $args);
118
+        $this->args = array_merge( $defaults, $args );
119 119
 
120
-        $attributes = $this->normalize->form($this->args, 'implode');
120
+        $attributes = $this->normalize->form( $this->args, 'implode' );
121 121
 
122 122
         $this->args['attributes'] = $attributes;
123 123
 
@@ -131,15 +131,15 @@  discard block
 block discarded – undo
131 131
      *
132 132
      * @return string|void
133 133
      */
134
-    public function render($print = true)
134
+    public function render( $print = true )
135 135
     {
136
-        $rendered = sprintf('<form %s>%s%s</form>',
136
+        $rendered = sprintf( '<form %s>%s%s</form>',
137 137
             $this->args['attributes'],
138 138
             $this->generateFields(),
139 139
             $this->generateSubmitButton()
140 140
         );
141 141
 
142
-        if ((bool) $print && 'return' !== $print) {
142
+        if( (bool) $print && 'return' !== $print ) {
143 143
             echo $rendered;
144 144
         }
145 145
 
@@ -168,7 +168,7 @@  discard block
 block discarded – undo
168 168
     {
169 169
         $hiddenFields = '';
170 170
 
171
-        $fields = array_reduce($this->fields, function ($carry, $formField) use (&$hiddenFields) {
171
+        $fields = array_reduce( $this->fields, function( $carry, $formField ) use ( &$hiddenFields ) {
172 172
             $stringLegend = '<legend class="screen-reader-text"><span>%s</span></legend>';
173 173
             $stringFieldset = '<fieldset%s>%s%s</fieldset>';
174 174
             $stringRendered = '<tr class="glsr-field %s"><th scope="row">%s</th><td>%s</td></tr>';
@@ -183,30 +183,30 @@  discard block
 block discarded – undo
183 183
             $rendered = $field->render();
184 184
 
185 185
             // render hidden inputs outside the table
186
-            if ('hidden' === $field->args['type']) {
186
+            if( 'hidden' === $field->args['type'] ) {
187 187
                 $hiddenFields .= $rendered;
188 188
                 return $carry;
189 189
             }
190 190
 
191
-            $hiddenClass = $this->isFieldHidden($formField) ? 'hidden' : '';
191
+            $hiddenClass = $this->isFieldHidden( $formField ) ? 'hidden' : '';
192 192
 
193
-            if ($multi) {
194
-                if ($depends = $formField->getDataDepends()) {
195
-                    $depends = sprintf(' data-depends=\'%s\'', json_encode($depends));
193
+            if( $multi ) {
194
+                if( $depends = $formField->getDataDepends() ) {
195
+                    $depends = sprintf( ' data-depends=\'%s\'', json_encode( $depends ) );
196 196
                 }
197 197
 
198
-                $legend = $label ? sprintf($stringLegend, $label) : '';
199
-                $rendered = sprintf($stringFieldset, $depends, $legend, $rendered);
198
+                $legend = $label ? sprintf( $stringLegend, $label ) : '';
199
+                $rendered = sprintf( $stringFieldset, $depends, $legend, $rendered );
200 200
             }
201 201
 
202 202
             $renderedField = $field->outside
203
-                ? sprintf($outsideRendered, $rendered)
204
-                : sprintf($stringRendered, $hiddenClass, $label, $rendered);
203
+                ? sprintf( $outsideRendered, $rendered )
204
+                : sprintf( $stringRendered, $hiddenClass, $label, $rendered );
205 205
 
206 206
             return $carry.$renderedField;
207 207
         });
208 208
 
209
-        return sprintf('<table class="form-table"><tbody>%s</tbody></table>%s', $fields, $hiddenFields);
209
+        return sprintf( '<table class="form-table"><tbody>%s</tbody></table>%s', $fields, $hiddenFields );
210 210
     }
211 211
 
212 212
     /**
@@ -218,19 +218,19 @@  discard block
 block discarded – undo
218 218
     {
219 219
         $args = $this->args['submit'];
220 220
 
221
-        is_array($args) ?: $args = ['text' => $args];
221
+        is_array( $args ) ?: $args = ['text' => $args];
222 222
 
223
-        $args = shortcode_atts([
224
-            'text' => __('Save Changes', 'site-reviews'),
223
+        $args = shortcode_atts( [
224
+            'text' => __( 'Save Changes', 'site-reviews' ),
225 225
             'type' => 'primary',
226 226
             'name' => 'submit',
227 227
             'wrap' => true,
228 228
             'other_attributes' => null,
229
-        ], $args);
229
+        ], $args );
230 230
 
231
-        if (is_admin()) {
231
+        if( is_admin() ) {
232 232
             ob_start();
233
-            submit_button($args['text'], $args['type'], $args['name'], $args['wrap'], $args['other_attributes']);
233
+            submit_button( $args['text'], $args['type'], $args['name'], $args['wrap'], $args['other_attributes'] );
234 234
             return ob_get_clean();
235 235
         }
236 236
     }
@@ -240,19 +240,19 @@  discard block
 block discarded – undo
240 240
      *
241 241
      * @return bool|null
242 242
      */
243
-    protected function isFieldHidden($field)
243
+    protected function isFieldHidden( $field )
244 244
     {
245
-        if (!($dependsOn = $field->getDataDepends())) {
245
+        if( !( $dependsOn = $field->getDataDepends() ) ) {
246 246
             return;
247 247
         }
248 248
 
249
-        foreach ($this->fields as $formField) {
250
-            if ($dependsOn['name'] !== $formField->args['name']) {
249
+        foreach( $this->fields as $formField ) {
250
+            if( $dependsOn['name'] !== $formField->args['name'] ) {
251 251
                 continue;
252 252
             }
253 253
 
254
-            if (is_array($dependsOn['value'])) {
255
-                return !in_array($formField->args['value'], $dependsOn['value']);
254
+            if( is_array( $dependsOn['value'] ) ) {
255
+                return !in_array( $formField->args['value'], $dependsOn['value'] );
256 256
             }
257 257
 
258 258
             return $dependsOn['value'] != $formField->args['value'];
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -5,8 +5,7 @@
 block discarded – undo
5 5
 use Exception;
6 6
 use GeminiLabs\Castor\Services\Normalizer;
7 7
 
8
-class Form
9
-{
8
+class Form {
10 9
     /**
11 10
      * @var array
12 11
      */
Please login to merge, or discard this patch.
src/AliasLoader.php 3 patches
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -4,78 +4,78 @@
 block discarded – undo
4 4
 
5 5
 class AliasLoader
6 6
 {
7
-    /**
8
-     * The singleton instance of the loader.
9
-     *
10
-     * @var AliasLoader
11
-     */
12
-    protected static $instance;
7
+	/**
8
+	 * The singleton instance of the loader.
9
+	 *
10
+	 * @var AliasLoader
11
+	 */
12
+	protected static $instance;
13 13
 
14
-    /**
15
-     * The array of class aliases.
16
-     *
17
-     * @var array
18
-     */
19
-    protected $aliases;
14
+	/**
15
+	 * The array of class aliases.
16
+	 *
17
+	 * @var array
18
+	 */
19
+	protected $aliases;
20 20
 
21
-    /**
22
-     * Indicates if a loader has been registered.
23
-     *
24
-     * @var bool
25
-     */
26
-    protected $registered = false;
21
+	/**
22
+	 * Indicates if a loader has been registered.
23
+	 *
24
+	 * @var bool
25
+	 */
26
+	protected $registered = false;
27 27
 
28
-    private function __construct(array $aliases)
29
-    {
30
-        $this->aliases = $aliases;
31
-    }
28
+	private function __construct(array $aliases)
29
+	{
30
+		$this->aliases = $aliases;
31
+	}
32 32
 
33
-    private function __clone()
34
-    {
35
-    }
33
+	private function __clone()
34
+	{
35
+	}
36 36
 
37
-    /**
38
-     * Get or create the singleton alias loader instance.
39
-     *
40
-     * @return AliasLoader
41
-     */
42
-    public static function getInstance(array $aliases = [])
43
-    {
44
-        if (is_null(static::$instance)) {
45
-            return static::$instance = new static($aliases);
46
-        }
37
+	/**
38
+	 * Get or create the singleton alias loader instance.
39
+	 *
40
+	 * @return AliasLoader
41
+	 */
42
+	public static function getInstance(array $aliases = [])
43
+	{
44
+		if (is_null(static::$instance)) {
45
+			return static::$instance = new static($aliases);
46
+		}
47 47
 
48
-        $aliases = array_merge(static::$instance->aliases, $aliases);
48
+		$aliases = array_merge(static::$instance->aliases, $aliases);
49 49
 
50
-        static::$instance->aliases = $aliases;
50
+		static::$instance->aliases = $aliases;
51 51
 
52
-        return static::$instance;
53
-    }
52
+		return static::$instance;
53
+	}
54 54
 
55
-    /**
56
-     * Load a class alias if it is registered.
57
-     *
58
-     * @param string $alias
59
-     *
60
-     * @return bool|null
61
-     */
62
-    public function load($alias)
63
-    {
64
-        if (isset($this->aliases[$alias])) {
65
-            return class_alias($this->aliases[$alias], $alias);
66
-        }
67
-    }
55
+	/**
56
+	 * Load a class alias if it is registered.
57
+	 *
58
+	 * @param string $alias
59
+	 *
60
+	 * @return bool|null
61
+	 */
62
+	public function load($alias)
63
+	{
64
+		if (isset($this->aliases[$alias])) {
65
+			return class_alias($this->aliases[$alias], $alias);
66
+		}
67
+	}
68 68
 
69
-    /**
70
-     * Register the loader on the auto-loader stack.
71
-     *
72
-     * @return void
73
-     */
74
-    public function register()
75
-    {
76
-        if (!$this->registered) {
77
-            spl_autoload_register([$this, 'load'], true, true);
78
-            $this->registered = true;
79
-        }
80
-    }
69
+	/**
70
+	 * Register the loader on the auto-loader stack.
71
+	 *
72
+	 * @return void
73
+	 */
74
+	public function register()
75
+	{
76
+		if (!$this->registered) {
77
+			spl_autoload_register([$this, 'load'], true, true);
78
+			$this->registered = true;
79
+		}
80
+	}
81 81
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
      */
26 26
     protected $registered = false;
27 27
 
28
-    private function __construct(array $aliases)
28
+    private function __construct( array $aliases )
29 29
     {
30 30
         $this->aliases = $aliases;
31 31
     }
@@ -39,13 +39,13 @@  discard block
 block discarded – undo
39 39
      *
40 40
      * @return AliasLoader
41 41
      */
42
-    public static function getInstance(array $aliases = [])
42
+    public static function getInstance( array $aliases = [] )
43 43
     {
44
-        if (is_null(static::$instance)) {
45
-            return static::$instance = new static($aliases);
44
+        if( is_null( static::$instance ) ) {
45
+            return static::$instance = new static( $aliases );
46 46
         }
47 47
 
48
-        $aliases = array_merge(static::$instance->aliases, $aliases);
48
+        $aliases = array_merge( static::$instance->aliases, $aliases );
49 49
 
50 50
         static::$instance->aliases = $aliases;
51 51
 
@@ -59,10 +59,10 @@  discard block
 block discarded – undo
59 59
      *
60 60
      * @return bool|null
61 61
      */
62
-    public function load($alias)
62
+    public function load( $alias )
63 63
     {
64
-        if (isset($this->aliases[$alias])) {
65
-            return class_alias($this->aliases[$alias], $alias);
64
+        if( isset( $this->aliases[$alias] ) ) {
65
+            return class_alias( $this->aliases[$alias], $alias );
66 66
         }
67 67
     }
68 68
 
@@ -73,8 +73,8 @@  discard block
 block discarded – undo
73 73
      */
74 74
     public function register()
75 75
     {
76
-        if (!$this->registered) {
77
-            spl_autoload_register([$this, 'load'], true, true);
76
+        if( !$this->registered ) {
77
+            spl_autoload_register( [$this, 'load'], true, true );
78 78
             $this->registered = true;
79 79
         }
80 80
     }
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2,8 +2,7 @@
 block discarded – undo
2 2
 
3 3
 namespace GeminiLabs\Castor;
4 4
 
5
-class AliasLoader
6
-{
5
+class AliasLoader {
7 6
     /**
8 7
      * The singleton instance of the loader.
9 8
      *
Please login to merge, or discard this patch.
src/Services/Validator.php 3 patches
Indentation   +562 added lines, -562 removed lines patch added patch discarded remove patch
@@ -7,566 +7,566 @@
 block discarded – undo
7 7
 
8 8
 class Validator
9 9
 {
10
-    /**
11
-     * @var array
12
-     */
13
-    public $errors = [];
14
-
15
-    /**
16
-     * The data under validation.
17
-     *
18
-     * @var array
19
-     */
20
-    protected $data = [];
21
-
22
-    /**
23
-     * The failed validation rules.
24
-     *
25
-     * @var array
26
-     */
27
-    protected $failedRules = [];
28
-
29
-    /**
30
-     * The rules to be applied to the data.
31
-     *
32
-     * @var array
33
-     */
34
-    protected $rules = [];
35
-
36
-    /**
37
-     * The size related validation rules.
38
-     *
39
-     * @var array
40
-     */
41
-    protected $sizeRules = [
42
-        'Between',
43
-        'Max',
44
-        'Min',
45
-    ];
46
-
47
-    /**
48
-     * The validation rules that imply the field is required.
49
-     *
50
-     * @var array
51
-     */
52
-    protected $implicitRules = [
53
-        'Required',
54
-    ];
55
-
56
-    /**
57
-     * The numeric related validation rules.
58
-     *
59
-     * @var array
60
-     */
61
-    protected $numericRules = [
62
-        'Numeric',
63
-    ];
64
-
65
-    /**
66
-     * Run the validator's rules against its data.
67
-     *
68
-     * @param mixed $data
69
-     *
70
-     * @return array
71
-     */
72
-    public function validate($data, array $rules = [])
73
-    {
74
-        $this->normalizeData($data);
75
-        $this->setRules($rules);
76
-
77
-        foreach ($this->rules as $attribute => $rules) {
78
-            foreach ($rules as $rule) {
79
-                $this->validateAttribute($rule, $attribute);
80
-
81
-                if ($this->shouldStopValidating($attribute)) {
82
-                    break;
83
-                }
84
-            }
85
-        }
86
-
87
-        return $this->errors;
88
-    }
89
-
90
-    /**
91
-     * Add an error message to the validator's collection of errors.
92
-     *
93
-     * @param string $attribute
94
-     * @param string $rule
95
-     *
96
-     * @return void
97
-     */
98
-    protected function addError($attribute, $rule, array $parameters)
99
-    {
100
-        $message = $this->getMessage($attribute, $rule, $parameters);
101
-
102
-        $this->errors[$attribute]['errors'][] = $message;
103
-
104
-        if (!isset($this->errors[$attribute]['value'])) {
105
-            $this->errors[$attribute]['value'] = $this->getValue($attribute);
106
-        }
107
-    }
108
-
109
-    /**
110
-     * Add a failed rule and error message to the collection.
111
-     *
112
-     * @param string $attribute
113
-     * @param string $rule
114
-     *
115
-     * @return void
116
-     */
117
-    protected function addFailure($attribute, $rule, array $parameters)
118
-    {
119
-        $this->addError($attribute, $rule, $parameters);
120
-
121
-        $this->failedRules[$attribute][$rule] = $parameters;
122
-    }
123
-
124
-    /**
125
-     * Get the data type of the given attribute.
126
-     *
127
-     * @param  string  $attribute
128
-     * @return string
129
-     */
130
-    protected function getAttributeType($attribute)
131
-    {
132
-        return $this->hasRule($attribute, $this->numericRules)
133
-            ? 'numeric'
134
-            : 'string';
135
-    }
136
-
137
-    /**
138
-     * Get the validation message for an attribute and rule.
139
-     *
140
-     * @param string $attribute
141
-     * @param string $rule
142
-     *
143
-     * @return string|null
144
-     */
145
-    protected function getMessage($attribute, $rule, array $parameters)
146
-    {
147
-        if (in_array($rule, $this->sizeRules)) {
148
-            return $this->getSizeMessage($attribute, $rule, $parameters);
149
-        }
150
-
151
-        $lowerRule = $this->snakeCase($rule);
152
-
153
-        return $this->translator($lowerRule, $rule, $attribute, $parameters);
154
-    }
155
-
156
-    /**
157
-     * Get a rule and its parameters for a given attribute.
158
-     *
159
-     * @param string       $attribute
160
-     * @param string|array $rules
161
-     *
162
-     * @return array|null
163
-     */
164
-    protected function getRule($attribute, $rules)
165
-    {
166
-        if (!array_key_exists($attribute, $this->rules)) {
167
-            return;
168
-        }
169
-
170
-        $rules = (array) $rules;
171
-
172
-        foreach ($this->rules[$attribute] as $rule) {
173
-            list($rule, $parameters) = $this->parseRule($rule);
174
-
175
-            if (in_array($rule, $rules)) {
176
-                return [$rule, $parameters];
177
-            }
178
-        }
179
-    }
180
-
181
-    /**
182
-     * Get the size of an attribute.
183
-     *
184
-     * @param string $attribute
185
-     * @param mixed  $value
186
-     *
187
-     * @return mixed
188
-     */
189
-    protected function getSize($attribute, $value)
190
-    {
191
-        $hasNumeric = $this->hasRule($attribute, $this->numericRules);
192
-
193
-        if (is_numeric($value) && $hasNumeric) {
194
-            return $value;
195
-        } elseif (is_array($value)) {
196
-            return count($value);
197
-        }
198
-
199
-        return mb_strlen($value);
200
-    }
201
-
202
-    /**
203
-     * Get the proper error message for an attribute and size rule.
204
-     *
205
-     * @param string $attribute
206
-     * @param string $rule
207
-     *
208
-     * @return string|null
209
-     */
210
-    protected function getSizeMessage($attribute, $rule, array $parameters)
211
-    {
212
-        $lowerRule = $this->snakeCase($rule);
213
-        $type = $this->getAttributeType($attribute);
214
-
215
-        $lowerRule .= ".{$type}";
216
-
217
-        return $this->translator($lowerRule, $rule, $attribute, $parameters);
218
-    }
219
-
220
-    /**
221
-     * Get the value of a given attribute.
222
-     *
223
-     * @param string $attribute
224
-     *
225
-     * @return mixed
226
-     */
227
-    protected function getValue($attribute)
228
-    {
229
-        if (isset($this->data[$attribute])) {
230
-            return $this->data[$attribute];
231
-        }
232
-    }
233
-
234
-    /**
235
-     * Determine if the given attribute has a rule in the given set.
236
-     *
237
-     * @param string       $attribute
238
-     * @param string|array $rules
239
-     *
240
-     * @return bool
241
-     */
242
-    protected function hasRule($attribute, $rules)
243
-    {
244
-        return !is_null($this->getRule($attribute, $rules));
245
-    }
246
-
247
-    /**
248
-     * Normalize the provided data to an array.
249
-     *
250
-     * @param mixed $data
251
-     *
252
-     * @return $this
253
-     */
254
-    protected function normalizeData($data)
255
-    {
256
-        // If an object was provided, get its public properties
257
-        if (is_object($data)) {
258
-            $this->data = get_object_vars($data);
259
-        } else {
260
-            $this->data = $data;
261
-        }
262
-
263
-        return $this;
264
-    }
265
-
266
-    /**
267
-     * Parse a parameter list.
268
-     *
269
-     * @param string $rule
270
-     * @param string $parameter
271
-     *
272
-     * @return array
273
-     */
274
-    protected function parseParameters($rule, $parameter)
275
-    {
276
-        if ('regex' == strtolower($rule)) {
277
-            return [$parameter];
278
-        }
279
-
280
-        return str_getcsv($parameter);
281
-    }
282
-
283
-    /**
284
-     * Extract the rule name and parameters from a rule.
285
-     *
286
-     * @param string $rule
287
-     *
288
-     * @return array
289
-     */
290
-    protected function parseRule($rule)
291
-    {
292
-        $parameters = [];
293
-
294
-        // example: {rule}:{parameters}
295
-        if (false !== strpos($rule, ':')) {
296
-            list($rule, $parameter) = explode(':', $rule, 2);
297
-
298
-            // example: {parameter1,parameter2,...}
299
-            $parameters = $this->parseParameters($rule, $parameter);
300
-        }
301
-
302
-        $rule = ucwords(str_replace(['-', '_'], ' ', trim($rule)));
303
-        $rule = str_replace(' ', '', $rule);
304
-
305
-        return [$rule, $parameters];
306
-    }
307
-
308
-    /**
309
-     * Replace all placeholders for the between rule.
310
-     *
311
-     * @param string $message
312
-     *
313
-     * @return string
314
-     */
315
-    protected function replaceBetween($message, array $parameters)
316
-    {
317
-        return str_replace([':min', ':max'], $parameters, $message);
318
-    }
319
-
320
-    /**
321
-     * Replace all placeholders for the max rule.
322
-     *
323
-     * @param string $message
324
-     *
325
-     * @return string
326
-     */
327
-    protected function replaceMax($message, array $parameters)
328
-    {
329
-        return str_replace(':max', $parameters[0], $message);
330
-    }
331
-
332
-    /**
333
-     * Replace all placeholders for the min rule.
334
-     *
335
-     * @param string $message
336
-     *
337
-     * @return string
338
-     */
339
-    protected function replaceMin($message, array $parameters)
340
-    {
341
-        return str_replace(':min', $parameters[0], $message);
342
-    }
343
-
344
-    /**
345
-     * Require a certain number of parameters to be present.
346
-     *
347
-     * @param int    $count
348
-     * @param string $rule
349
-     *
350
-     * @return void
351
-     * @throws InvalidArgumentException
352
-     */
353
-    protected function requireParameterCount($count, array $parameters, $rule)
354
-    {
355
-        if (count($parameters) < $count) {
356
-            throw new InvalidArgumentException("Validation rule $rule requires at least $count parameters.");
357
-        }
358
-    }
359
-
360
-    /**
361
-     * Set the validation rules.
362
-     *
363
-     * @return $this
364
-     */
365
-    protected function setRules(array $rules)
366
-    {
367
-        foreach ($rules as $key => $rule) {
368
-            $rules[$key] = is_string($rule) ? explode('|', $rule) : $rule;
369
-        }
370
-
371
-        $this->rules = $rules;
372
-
373
-        return $this;
374
-    }
375
-
376
-    /**
377
-     * Check if we should stop further validations on a given attribute.
378
-     *
379
-     * @param string $attribute
380
-     *
381
-     * @return bool
382
-     */
383
-    protected function shouldStopValidating($attribute)
384
-    {
385
-        return $this->hasRule($attribute, $this->implicitRules)
386
-            && isset($this->failedRules[$attribute])
387
-            && array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules);
388
-    }
389
-
390
-    /**
391
-     * Convert a string to snake case.
392
-     *
393
-     * @param string $string
394
-     *
395
-     * @return string
396
-     */
397
-    protected function snakeCase($string)
398
-    {
399
-        if (!ctype_lower($string)) {
400
-            $string = preg_replace('/\s+/u', '', $string);
401
-            $string = preg_replace('/(.)(?=[A-Z])/u', '$1_', $string);
402
-            $string = mb_strtolower($string, 'UTF-8');
403
-        }
404
-
405
-        return $string;
406
-    }
407
-
408
-    /**
409
-     * Returns a translated message for the attribute.
410
-     *
411
-     * @param string $key
412
-     * @param string $rule
413
-     * @param string $attribute
414
-     *
415
-     * @return string|null
416
-     */
417
-    protected function translator($key, $rule, $attribute, array $parameters)
418
-    {
419
-        $strings = []; //glsr_resolve( 'Strings' )->validation();
420
-
421
-        $message = isset($strings[$key])
422
-            ? $strings[$key]
423
-            : false;
424
-
425
-        if (!$message) {
426
-            return;
427
-        }
428
-
429
-        $message = str_replace(':attribute', $attribute, $message);
430
-
431
-        if (method_exists($this, $replacer = "replace{$rule}")) {
432
-            $message = $this->$replacer($message, $parameters);
433
-        }
434
-
435
-        return $message;
436
-    }
437
-
438
-    // Rules Validation
439
-    // ---------------------------------------------------------------------------------------------
440
-
441
-    /**
442
-     * Validate that an attribute was "accepted".
443
-     *
444
-     * This validation rule implies the attribute is "required".
445
-     *
446
-     * @param mixed  $value
447
-     *
448
-     * @return bool
449
-     */
450
-    protected function validateAccepted($value)
451
-    {
452
-        $acceptable = ['yes', 'on', '1', 1, true, 'true'];
453
-
454
-        return $this->validateRequired($value) && in_array($value, $acceptable, true);
455
-    }
456
-
457
-    /**
458
-     * Validate a given attribute against a rule.
459
-     *
460
-     * @param string $rule
461
-     * @param string $attribute
462
-     *
463
-     * @return void
464
-     * @throws BadMethodCallException
465
-     */
466
-    protected function validateAttribute($rule, $attribute)
467
-    {
468
-        list($rule, $parameters) = $this->parseRule($rule);
469
-
470
-        if ('' == $rule) {
471
-            return;
472
-        }
473
-
474
-        $method = "validate{$rule}";
475
-
476
-        if (!method_exists($this, $method)) {
477
-            throw new BadMethodCallException("Method [$method] does not exist.");
478
-        }
479
-
480
-        if (!$this->$method($this->getValue($attribute), $attribute, $parameters)) {
481
-            $this->addFailure($attribute, $rule, $parameters);
482
-        }
483
-    }
484
-
485
-    /**
486
-     * Validate the size of an attribute is between a set of values.
487
-     *
488
-     * @param mixed  $value
489
-     * @param string $attribute
490
-     *
491
-     * @return bool
492
-     */
493
-    protected function validateBetween($value, $attribute, array $parameters)
494
-    {
495
-        $this->requireParameterCount(2, $parameters, 'between');
496
-
497
-        $size = $this->getSize($attribute, $value);
498
-
499
-        return $size >= $parameters[0] && $size <= $parameters[1];
500
-    }
501
-
502
-    /**
503
-     * Validate that an attribute is a valid e-mail address.
504
-     *
505
-     * @param mixed $value
506
-     *
507
-     * @return bool
508
-     */
509
-    protected function validateEmail($value)
510
-    {
511
-        return false !== filter_var($value, FILTER_VALIDATE_EMAIL);
512
-    }
513
-
514
-    /**
515
-     * Validate the size of an attribute is less than a maximum value.
516
-     *
517
-     * @param mixed  $value
518
-     * @param string $attribute
519
-     *
520
-     * @return bool
521
-     */
522
-    protected function validateMax($value, $attribute, array $parameters)
523
-    {
524
-        $this->requireParameterCount(1, $parameters, 'max');
525
-
526
-        return $this->getSize($attribute, $value) <= $parameters[0];
527
-    }
528
-
529
-    /**
530
-     * Validate the size of an attribute is greater than a minimum value.
531
-     *
532
-     * @param mixed  $value
533
-     * @param string $attribute
534
-     *
535
-     * @return bool
536
-     */
537
-    protected function validateMin($value, $attribute, array $parameters)
538
-    {
539
-        $this->requireParameterCount(1, $parameters, 'min');
540
-
541
-        return $this->getSize($attribute, $value) >= $parameters[0];
542
-    }
543
-
544
-    /**
545
-     * Validate that an attribute is numeric.
546
-     *
547
-     * @param mixed $value
548
-     *
549
-     * @return bool
550
-     */
551
-    protected function validateNumeric($value)
552
-    {
553
-        return is_numeric($value);
554
-    }
555
-
556
-    /**
557
-     * Validate that a required attribute exists.
558
-     *
559
-     * @param mixed $value
560
-     *
561
-     * @return bool
562
-     */
563
-    protected function validateRequired($value)
564
-    {
565
-        if (is_string($value)) {
566
-            $value = trim($value);
567
-        }
568
-        return is_null($value) || empty($value)
569
-            ? false
570
-            : true;
571
-    }
10
+	/**
11
+	 * @var array
12
+	 */
13
+	public $errors = [];
14
+
15
+	/**
16
+	 * The data under validation.
17
+	 *
18
+	 * @var array
19
+	 */
20
+	protected $data = [];
21
+
22
+	/**
23
+	 * The failed validation rules.
24
+	 *
25
+	 * @var array
26
+	 */
27
+	protected $failedRules = [];
28
+
29
+	/**
30
+	 * The rules to be applied to the data.
31
+	 *
32
+	 * @var array
33
+	 */
34
+	protected $rules = [];
35
+
36
+	/**
37
+	 * The size related validation rules.
38
+	 *
39
+	 * @var array
40
+	 */
41
+	protected $sizeRules = [
42
+		'Between',
43
+		'Max',
44
+		'Min',
45
+	];
46
+
47
+	/**
48
+	 * The validation rules that imply the field is required.
49
+	 *
50
+	 * @var array
51
+	 */
52
+	protected $implicitRules = [
53
+		'Required',
54
+	];
55
+
56
+	/**
57
+	 * The numeric related validation rules.
58
+	 *
59
+	 * @var array
60
+	 */
61
+	protected $numericRules = [
62
+		'Numeric',
63
+	];
64
+
65
+	/**
66
+	 * Run the validator's rules against its data.
67
+	 *
68
+	 * @param mixed $data
69
+	 *
70
+	 * @return array
71
+	 */
72
+	public function validate($data, array $rules = [])
73
+	{
74
+		$this->normalizeData($data);
75
+		$this->setRules($rules);
76
+
77
+		foreach ($this->rules as $attribute => $rules) {
78
+			foreach ($rules as $rule) {
79
+				$this->validateAttribute($rule, $attribute);
80
+
81
+				if ($this->shouldStopValidating($attribute)) {
82
+					break;
83
+				}
84
+			}
85
+		}
86
+
87
+		return $this->errors;
88
+	}
89
+
90
+	/**
91
+	 * Add an error message to the validator's collection of errors.
92
+	 *
93
+	 * @param string $attribute
94
+	 * @param string $rule
95
+	 *
96
+	 * @return void
97
+	 */
98
+	protected function addError($attribute, $rule, array $parameters)
99
+	{
100
+		$message = $this->getMessage($attribute, $rule, $parameters);
101
+
102
+		$this->errors[$attribute]['errors'][] = $message;
103
+
104
+		if (!isset($this->errors[$attribute]['value'])) {
105
+			$this->errors[$attribute]['value'] = $this->getValue($attribute);
106
+		}
107
+	}
108
+
109
+	/**
110
+	 * Add a failed rule and error message to the collection.
111
+	 *
112
+	 * @param string $attribute
113
+	 * @param string $rule
114
+	 *
115
+	 * @return void
116
+	 */
117
+	protected function addFailure($attribute, $rule, array $parameters)
118
+	{
119
+		$this->addError($attribute, $rule, $parameters);
120
+
121
+		$this->failedRules[$attribute][$rule] = $parameters;
122
+	}
123
+
124
+	/**
125
+	 * Get the data type of the given attribute.
126
+	 *
127
+	 * @param  string  $attribute
128
+	 * @return string
129
+	 */
130
+	protected function getAttributeType($attribute)
131
+	{
132
+		return $this->hasRule($attribute, $this->numericRules)
133
+			? 'numeric'
134
+			: 'string';
135
+	}
136
+
137
+	/**
138
+	 * Get the validation message for an attribute and rule.
139
+	 *
140
+	 * @param string $attribute
141
+	 * @param string $rule
142
+	 *
143
+	 * @return string|null
144
+	 */
145
+	protected function getMessage($attribute, $rule, array $parameters)
146
+	{
147
+		if (in_array($rule, $this->sizeRules)) {
148
+			return $this->getSizeMessage($attribute, $rule, $parameters);
149
+		}
150
+
151
+		$lowerRule = $this->snakeCase($rule);
152
+
153
+		return $this->translator($lowerRule, $rule, $attribute, $parameters);
154
+	}
155
+
156
+	/**
157
+	 * Get a rule and its parameters for a given attribute.
158
+	 *
159
+	 * @param string       $attribute
160
+	 * @param string|array $rules
161
+	 *
162
+	 * @return array|null
163
+	 */
164
+	protected function getRule($attribute, $rules)
165
+	{
166
+		if (!array_key_exists($attribute, $this->rules)) {
167
+			return;
168
+		}
169
+
170
+		$rules = (array) $rules;
171
+
172
+		foreach ($this->rules[$attribute] as $rule) {
173
+			list($rule, $parameters) = $this->parseRule($rule);
174
+
175
+			if (in_array($rule, $rules)) {
176
+				return [$rule, $parameters];
177
+			}
178
+		}
179
+	}
180
+
181
+	/**
182
+	 * Get the size of an attribute.
183
+	 *
184
+	 * @param string $attribute
185
+	 * @param mixed  $value
186
+	 *
187
+	 * @return mixed
188
+	 */
189
+	protected function getSize($attribute, $value)
190
+	{
191
+		$hasNumeric = $this->hasRule($attribute, $this->numericRules);
192
+
193
+		if (is_numeric($value) && $hasNumeric) {
194
+			return $value;
195
+		} elseif (is_array($value)) {
196
+			return count($value);
197
+		}
198
+
199
+		return mb_strlen($value);
200
+	}
201
+
202
+	/**
203
+	 * Get the proper error message for an attribute and size rule.
204
+	 *
205
+	 * @param string $attribute
206
+	 * @param string $rule
207
+	 *
208
+	 * @return string|null
209
+	 */
210
+	protected function getSizeMessage($attribute, $rule, array $parameters)
211
+	{
212
+		$lowerRule = $this->snakeCase($rule);
213
+		$type = $this->getAttributeType($attribute);
214
+
215
+		$lowerRule .= ".{$type}";
216
+
217
+		return $this->translator($lowerRule, $rule, $attribute, $parameters);
218
+	}
219
+
220
+	/**
221
+	 * Get the value of a given attribute.
222
+	 *
223
+	 * @param string $attribute
224
+	 *
225
+	 * @return mixed
226
+	 */
227
+	protected function getValue($attribute)
228
+	{
229
+		if (isset($this->data[$attribute])) {
230
+			return $this->data[$attribute];
231
+		}
232
+	}
233
+
234
+	/**
235
+	 * Determine if the given attribute has a rule in the given set.
236
+	 *
237
+	 * @param string       $attribute
238
+	 * @param string|array $rules
239
+	 *
240
+	 * @return bool
241
+	 */
242
+	protected function hasRule($attribute, $rules)
243
+	{
244
+		return !is_null($this->getRule($attribute, $rules));
245
+	}
246
+
247
+	/**
248
+	 * Normalize the provided data to an array.
249
+	 *
250
+	 * @param mixed $data
251
+	 *
252
+	 * @return $this
253
+	 */
254
+	protected function normalizeData($data)
255
+	{
256
+		// If an object was provided, get its public properties
257
+		if (is_object($data)) {
258
+			$this->data = get_object_vars($data);
259
+		} else {
260
+			$this->data = $data;
261
+		}
262
+
263
+		return $this;
264
+	}
265
+
266
+	/**
267
+	 * Parse a parameter list.
268
+	 *
269
+	 * @param string $rule
270
+	 * @param string $parameter
271
+	 *
272
+	 * @return array
273
+	 */
274
+	protected function parseParameters($rule, $parameter)
275
+	{
276
+		if ('regex' == strtolower($rule)) {
277
+			return [$parameter];
278
+		}
279
+
280
+		return str_getcsv($parameter);
281
+	}
282
+
283
+	/**
284
+	 * Extract the rule name and parameters from a rule.
285
+	 *
286
+	 * @param string $rule
287
+	 *
288
+	 * @return array
289
+	 */
290
+	protected function parseRule($rule)
291
+	{
292
+		$parameters = [];
293
+
294
+		// example: {rule}:{parameters}
295
+		if (false !== strpos($rule, ':')) {
296
+			list($rule, $parameter) = explode(':', $rule, 2);
297
+
298
+			// example: {parameter1,parameter2,...}
299
+			$parameters = $this->parseParameters($rule, $parameter);
300
+		}
301
+
302
+		$rule = ucwords(str_replace(['-', '_'], ' ', trim($rule)));
303
+		$rule = str_replace(' ', '', $rule);
304
+
305
+		return [$rule, $parameters];
306
+	}
307
+
308
+	/**
309
+	 * Replace all placeholders for the between rule.
310
+	 *
311
+	 * @param string $message
312
+	 *
313
+	 * @return string
314
+	 */
315
+	protected function replaceBetween($message, array $parameters)
316
+	{
317
+		return str_replace([':min', ':max'], $parameters, $message);
318
+	}
319
+
320
+	/**
321
+	 * Replace all placeholders for the max rule.
322
+	 *
323
+	 * @param string $message
324
+	 *
325
+	 * @return string
326
+	 */
327
+	protected function replaceMax($message, array $parameters)
328
+	{
329
+		return str_replace(':max', $parameters[0], $message);
330
+	}
331
+
332
+	/**
333
+	 * Replace all placeholders for the min rule.
334
+	 *
335
+	 * @param string $message
336
+	 *
337
+	 * @return string
338
+	 */
339
+	protected function replaceMin($message, array $parameters)
340
+	{
341
+		return str_replace(':min', $parameters[0], $message);
342
+	}
343
+
344
+	/**
345
+	 * Require a certain number of parameters to be present.
346
+	 *
347
+	 * @param int    $count
348
+	 * @param string $rule
349
+	 *
350
+	 * @return void
351
+	 * @throws InvalidArgumentException
352
+	 */
353
+	protected function requireParameterCount($count, array $parameters, $rule)
354
+	{
355
+		if (count($parameters) < $count) {
356
+			throw new InvalidArgumentException("Validation rule $rule requires at least $count parameters.");
357
+		}
358
+	}
359
+
360
+	/**
361
+	 * Set the validation rules.
362
+	 *
363
+	 * @return $this
364
+	 */
365
+	protected function setRules(array $rules)
366
+	{
367
+		foreach ($rules as $key => $rule) {
368
+			$rules[$key] = is_string($rule) ? explode('|', $rule) : $rule;
369
+		}
370
+
371
+		$this->rules = $rules;
372
+
373
+		return $this;
374
+	}
375
+
376
+	/**
377
+	 * Check if we should stop further validations on a given attribute.
378
+	 *
379
+	 * @param string $attribute
380
+	 *
381
+	 * @return bool
382
+	 */
383
+	protected function shouldStopValidating($attribute)
384
+	{
385
+		return $this->hasRule($attribute, $this->implicitRules)
386
+			&& isset($this->failedRules[$attribute])
387
+			&& array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules);
388
+	}
389
+
390
+	/**
391
+	 * Convert a string to snake case.
392
+	 *
393
+	 * @param string $string
394
+	 *
395
+	 * @return string
396
+	 */
397
+	protected function snakeCase($string)
398
+	{
399
+		if (!ctype_lower($string)) {
400
+			$string = preg_replace('/\s+/u', '', $string);
401
+			$string = preg_replace('/(.)(?=[A-Z])/u', '$1_', $string);
402
+			$string = mb_strtolower($string, 'UTF-8');
403
+		}
404
+
405
+		return $string;
406
+	}
407
+
408
+	/**
409
+	 * Returns a translated message for the attribute.
410
+	 *
411
+	 * @param string $key
412
+	 * @param string $rule
413
+	 * @param string $attribute
414
+	 *
415
+	 * @return string|null
416
+	 */
417
+	protected function translator($key, $rule, $attribute, array $parameters)
418
+	{
419
+		$strings = []; //glsr_resolve( 'Strings' )->validation();
420
+
421
+		$message = isset($strings[$key])
422
+			? $strings[$key]
423
+			: false;
424
+
425
+		if (!$message) {
426
+			return;
427
+		}
428
+
429
+		$message = str_replace(':attribute', $attribute, $message);
430
+
431
+		if (method_exists($this, $replacer = "replace{$rule}")) {
432
+			$message = $this->$replacer($message, $parameters);
433
+		}
434
+
435
+		return $message;
436
+	}
437
+
438
+	// Rules Validation
439
+	// ---------------------------------------------------------------------------------------------
440
+
441
+	/**
442
+	 * Validate that an attribute was "accepted".
443
+	 *
444
+	 * This validation rule implies the attribute is "required".
445
+	 *
446
+	 * @param mixed  $value
447
+	 *
448
+	 * @return bool
449
+	 */
450
+	protected function validateAccepted($value)
451
+	{
452
+		$acceptable = ['yes', 'on', '1', 1, true, 'true'];
453
+
454
+		return $this->validateRequired($value) && in_array($value, $acceptable, true);
455
+	}
456
+
457
+	/**
458
+	 * Validate a given attribute against a rule.
459
+	 *
460
+	 * @param string $rule
461
+	 * @param string $attribute
462
+	 *
463
+	 * @return void
464
+	 * @throws BadMethodCallException
465
+	 */
466
+	protected function validateAttribute($rule, $attribute)
467
+	{
468
+		list($rule, $parameters) = $this->parseRule($rule);
469
+
470
+		if ('' == $rule) {
471
+			return;
472
+		}
473
+
474
+		$method = "validate{$rule}";
475
+
476
+		if (!method_exists($this, $method)) {
477
+			throw new BadMethodCallException("Method [$method] does not exist.");
478
+		}
479
+
480
+		if (!$this->$method($this->getValue($attribute), $attribute, $parameters)) {
481
+			$this->addFailure($attribute, $rule, $parameters);
482
+		}
483
+	}
484
+
485
+	/**
486
+	 * Validate the size of an attribute is between a set of values.
487
+	 *
488
+	 * @param mixed  $value
489
+	 * @param string $attribute
490
+	 *
491
+	 * @return bool
492
+	 */
493
+	protected function validateBetween($value, $attribute, array $parameters)
494
+	{
495
+		$this->requireParameterCount(2, $parameters, 'between');
496
+
497
+		$size = $this->getSize($attribute, $value);
498
+
499
+		return $size >= $parameters[0] && $size <= $parameters[1];
500
+	}
501
+
502
+	/**
503
+	 * Validate that an attribute is a valid e-mail address.
504
+	 *
505
+	 * @param mixed $value
506
+	 *
507
+	 * @return bool
508
+	 */
509
+	protected function validateEmail($value)
510
+	{
511
+		return false !== filter_var($value, FILTER_VALIDATE_EMAIL);
512
+	}
513
+
514
+	/**
515
+	 * Validate the size of an attribute is less than a maximum value.
516
+	 *
517
+	 * @param mixed  $value
518
+	 * @param string $attribute
519
+	 *
520
+	 * @return bool
521
+	 */
522
+	protected function validateMax($value, $attribute, array $parameters)
523
+	{
524
+		$this->requireParameterCount(1, $parameters, 'max');
525
+
526
+		return $this->getSize($attribute, $value) <= $parameters[0];
527
+	}
528
+
529
+	/**
530
+	 * Validate the size of an attribute is greater than a minimum value.
531
+	 *
532
+	 * @param mixed  $value
533
+	 * @param string $attribute
534
+	 *
535
+	 * @return bool
536
+	 */
537
+	protected function validateMin($value, $attribute, array $parameters)
538
+	{
539
+		$this->requireParameterCount(1, $parameters, 'min');
540
+
541
+		return $this->getSize($attribute, $value) >= $parameters[0];
542
+	}
543
+
544
+	/**
545
+	 * Validate that an attribute is numeric.
546
+	 *
547
+	 * @param mixed $value
548
+	 *
549
+	 * @return bool
550
+	 */
551
+	protected function validateNumeric($value)
552
+	{
553
+		return is_numeric($value);
554
+	}
555
+
556
+	/**
557
+	 * Validate that a required attribute exists.
558
+	 *
559
+	 * @param mixed $value
560
+	 *
561
+	 * @return bool
562
+	 */
563
+	protected function validateRequired($value)
564
+	{
565
+		if (is_string($value)) {
566
+			$value = trim($value);
567
+		}
568
+		return is_null($value) || empty($value)
569
+			? false
570
+			: true;
571
+	}
572 572
 }
Please login to merge, or discard this patch.
Spacing   +104 added lines, -104 removed lines patch added patch discarded remove patch
@@ -69,16 +69,16 @@  discard block
 block discarded – undo
69 69
      *
70 70
      * @return array
71 71
      */
72
-    public function validate($data, array $rules = [])
72
+    public function validate( $data, array $rules = [] )
73 73
     {
74
-        $this->normalizeData($data);
75
-        $this->setRules($rules);
74
+        $this->normalizeData( $data );
75
+        $this->setRules( $rules );
76 76
 
77
-        foreach ($this->rules as $attribute => $rules) {
78
-            foreach ($rules as $rule) {
79
-                $this->validateAttribute($rule, $attribute);
77
+        foreach( $this->rules as $attribute => $rules ) {
78
+            foreach( $rules as $rule ) {
79
+                $this->validateAttribute( $rule, $attribute );
80 80
 
81
-                if ($this->shouldStopValidating($attribute)) {
81
+                if( $this->shouldStopValidating( $attribute ) ) {
82 82
                     break;
83 83
                 }
84 84
             }
@@ -95,14 +95,14 @@  discard block
 block discarded – undo
95 95
      *
96 96
      * @return void
97 97
      */
98
-    protected function addError($attribute, $rule, array $parameters)
98
+    protected function addError( $attribute, $rule, array $parameters )
99 99
     {
100
-        $message = $this->getMessage($attribute, $rule, $parameters);
100
+        $message = $this->getMessage( $attribute, $rule, $parameters );
101 101
 
102 102
         $this->errors[$attribute]['errors'][] = $message;
103 103
 
104
-        if (!isset($this->errors[$attribute]['value'])) {
105
-            $this->errors[$attribute]['value'] = $this->getValue($attribute);
104
+        if( !isset( $this->errors[$attribute]['value'] ) ) {
105
+            $this->errors[$attribute]['value'] = $this->getValue( $attribute );
106 106
         }
107 107
     }
108 108
 
@@ -114,9 +114,9 @@  discard block
 block discarded – undo
114 114
      *
115 115
      * @return void
116 116
      */
117
-    protected function addFailure($attribute, $rule, array $parameters)
117
+    protected function addFailure( $attribute, $rule, array $parameters )
118 118
     {
119
-        $this->addError($attribute, $rule, $parameters);
119
+        $this->addError( $attribute, $rule, $parameters );
120 120
 
121 121
         $this->failedRules[$attribute][$rule] = $parameters;
122 122
     }
@@ -127,9 +127,9 @@  discard block
 block discarded – undo
127 127
      * @param  string  $attribute
128 128
      * @return string
129 129
      */
130
-    protected function getAttributeType($attribute)
130
+    protected function getAttributeType( $attribute )
131 131
     {
132
-        return $this->hasRule($attribute, $this->numericRules)
132
+        return $this->hasRule( $attribute, $this->numericRules )
133 133
             ? 'numeric'
134 134
             : 'string';
135 135
     }
@@ -142,15 +142,15 @@  discard block
 block discarded – undo
142 142
      *
143 143
      * @return string|null
144 144
      */
145
-    protected function getMessage($attribute, $rule, array $parameters)
145
+    protected function getMessage( $attribute, $rule, array $parameters )
146 146
     {
147
-        if (in_array($rule, $this->sizeRules)) {
148
-            return $this->getSizeMessage($attribute, $rule, $parameters);
147
+        if( in_array( $rule, $this->sizeRules ) ) {
148
+            return $this->getSizeMessage( $attribute, $rule, $parameters );
149 149
         }
150 150
 
151
-        $lowerRule = $this->snakeCase($rule);
151
+        $lowerRule = $this->snakeCase( $rule );
152 152
 
153
-        return $this->translator($lowerRule, $rule, $attribute, $parameters);
153
+        return $this->translator( $lowerRule, $rule, $attribute, $parameters );
154 154
     }
155 155
 
156 156
     /**
@@ -161,18 +161,18 @@  discard block
 block discarded – undo
161 161
      *
162 162
      * @return array|null
163 163
      */
164
-    protected function getRule($attribute, $rules)
164
+    protected function getRule( $attribute, $rules )
165 165
     {
166
-        if (!array_key_exists($attribute, $this->rules)) {
166
+        if( !array_key_exists( $attribute, $this->rules ) ) {
167 167
             return;
168 168
         }
169 169
 
170 170
         $rules = (array) $rules;
171 171
 
172
-        foreach ($this->rules[$attribute] as $rule) {
173
-            list($rule, $parameters) = $this->parseRule($rule);
172
+        foreach( $this->rules[$attribute] as $rule ) {
173
+            list( $rule, $parameters ) = $this->parseRule( $rule );
174 174
 
175
-            if (in_array($rule, $rules)) {
175
+            if( in_array( $rule, $rules ) ) {
176 176
                 return [$rule, $parameters];
177 177
             }
178 178
         }
@@ -186,17 +186,17 @@  discard block
 block discarded – undo
186 186
      *
187 187
      * @return mixed
188 188
      */
189
-    protected function getSize($attribute, $value)
189
+    protected function getSize( $attribute, $value )
190 190
     {
191
-        $hasNumeric = $this->hasRule($attribute, $this->numericRules);
191
+        $hasNumeric = $this->hasRule( $attribute, $this->numericRules );
192 192
 
193
-        if (is_numeric($value) && $hasNumeric) {
193
+        if( is_numeric( $value ) && $hasNumeric ) {
194 194
             return $value;
195
-        } elseif (is_array($value)) {
196
-            return count($value);
195
+        } elseif( is_array( $value ) ) {
196
+            return count( $value );
197 197
         }
198 198
 
199
-        return mb_strlen($value);
199
+        return mb_strlen( $value );
200 200
     }
201 201
 
202 202
     /**
@@ -207,14 +207,14 @@  discard block
 block discarded – undo
207 207
      *
208 208
      * @return string|null
209 209
      */
210
-    protected function getSizeMessage($attribute, $rule, array $parameters)
210
+    protected function getSizeMessage( $attribute, $rule, array $parameters )
211 211
     {
212
-        $lowerRule = $this->snakeCase($rule);
213
-        $type = $this->getAttributeType($attribute);
212
+        $lowerRule = $this->snakeCase( $rule );
213
+        $type = $this->getAttributeType( $attribute );
214 214
 
215 215
         $lowerRule .= ".{$type}";
216 216
 
217
-        return $this->translator($lowerRule, $rule, $attribute, $parameters);
217
+        return $this->translator( $lowerRule, $rule, $attribute, $parameters );
218 218
     }
219 219
 
220 220
     /**
@@ -224,9 +224,9 @@  discard block
 block discarded – undo
224 224
      *
225 225
      * @return mixed
226 226
      */
227
-    protected function getValue($attribute)
227
+    protected function getValue( $attribute )
228 228
     {
229
-        if (isset($this->data[$attribute])) {
229
+        if( isset( $this->data[$attribute] ) ) {
230 230
             return $this->data[$attribute];
231 231
         }
232 232
     }
@@ -239,9 +239,9 @@  discard block
 block discarded – undo
239 239
      *
240 240
      * @return bool
241 241
      */
242
-    protected function hasRule($attribute, $rules)
242
+    protected function hasRule( $attribute, $rules )
243 243
     {
244
-        return !is_null($this->getRule($attribute, $rules));
244
+        return !is_null( $this->getRule( $attribute, $rules ) );
245 245
     }
246 246
 
247 247
     /**
@@ -251,11 +251,11 @@  discard block
 block discarded – undo
251 251
      *
252 252
      * @return $this
253 253
      */
254
-    protected function normalizeData($data)
254
+    protected function normalizeData( $data )
255 255
     {
256 256
         // If an object was provided, get its public properties
257
-        if (is_object($data)) {
258
-            $this->data = get_object_vars($data);
257
+        if( is_object( $data ) ) {
258
+            $this->data = get_object_vars( $data );
259 259
         } else {
260 260
             $this->data = $data;
261 261
         }
@@ -271,13 +271,13 @@  discard block
 block discarded – undo
271 271
      *
272 272
      * @return array
273 273
      */
274
-    protected function parseParameters($rule, $parameter)
274
+    protected function parseParameters( $rule, $parameter )
275 275
     {
276
-        if ('regex' == strtolower($rule)) {
276
+        if( 'regex' == strtolower( $rule ) ) {
277 277
             return [$parameter];
278 278
         }
279 279
 
280
-        return str_getcsv($parameter);
280
+        return str_getcsv( $parameter );
281 281
     }
282 282
 
283 283
     /**
@@ -287,20 +287,20 @@  discard block
 block discarded – undo
287 287
      *
288 288
      * @return array
289 289
      */
290
-    protected function parseRule($rule)
290
+    protected function parseRule( $rule )
291 291
     {
292 292
         $parameters = [];
293 293
 
294 294
         // example: {rule}:{parameters}
295
-        if (false !== strpos($rule, ':')) {
296
-            list($rule, $parameter) = explode(':', $rule, 2);
295
+        if( false !== strpos( $rule, ':' ) ) {
296
+            list( $rule, $parameter ) = explode( ':', $rule, 2 );
297 297
 
298 298
             // example: {parameter1,parameter2,...}
299
-            $parameters = $this->parseParameters($rule, $parameter);
299
+            $parameters = $this->parseParameters( $rule, $parameter );
300 300
         }
301 301
 
302
-        $rule = ucwords(str_replace(['-', '_'], ' ', trim($rule)));
303
-        $rule = str_replace(' ', '', $rule);
302
+        $rule = ucwords( str_replace( ['-', '_'], ' ', trim( $rule ) ) );
303
+        $rule = str_replace( ' ', '', $rule );
304 304
 
305 305
         return [$rule, $parameters];
306 306
     }
@@ -312,9 +312,9 @@  discard block
 block discarded – undo
312 312
      *
313 313
      * @return string
314 314
      */
315
-    protected function replaceBetween($message, array $parameters)
315
+    protected function replaceBetween( $message, array $parameters )
316 316
     {
317
-        return str_replace([':min', ':max'], $parameters, $message);
317
+        return str_replace( [':min', ':max'], $parameters, $message );
318 318
     }
319 319
 
320 320
     /**
@@ -324,9 +324,9 @@  discard block
 block discarded – undo
324 324
      *
325 325
      * @return string
326 326
      */
327
-    protected function replaceMax($message, array $parameters)
327
+    protected function replaceMax( $message, array $parameters )
328 328
     {
329
-        return str_replace(':max', $parameters[0], $message);
329
+        return str_replace( ':max', $parameters[0], $message );
330 330
     }
331 331
 
332 332
     /**
@@ -336,9 +336,9 @@  discard block
 block discarded – undo
336 336
      *
337 337
      * @return string
338 338
      */
339
-    protected function replaceMin($message, array $parameters)
339
+    protected function replaceMin( $message, array $parameters )
340 340
     {
341
-        return str_replace(':min', $parameters[0], $message);
341
+        return str_replace( ':min', $parameters[0], $message );
342 342
     }
343 343
 
344 344
     /**
@@ -350,10 +350,10 @@  discard block
 block discarded – undo
350 350
      * @return void
351 351
      * @throws InvalidArgumentException
352 352
      */
353
-    protected function requireParameterCount($count, array $parameters, $rule)
353
+    protected function requireParameterCount( $count, array $parameters, $rule )
354 354
     {
355
-        if (count($parameters) < $count) {
356
-            throw new InvalidArgumentException("Validation rule $rule requires at least $count parameters.");
355
+        if( count( $parameters ) < $count ) {
356
+            throw new InvalidArgumentException( "Validation rule $rule requires at least $count parameters." );
357 357
         }
358 358
     }
359 359
 
@@ -362,10 +362,10 @@  discard block
 block discarded – undo
362 362
      *
363 363
      * @return $this
364 364
      */
365
-    protected function setRules(array $rules)
365
+    protected function setRules( array $rules )
366 366
     {
367
-        foreach ($rules as $key => $rule) {
368
-            $rules[$key] = is_string($rule) ? explode('|', $rule) : $rule;
367
+        foreach( $rules as $key => $rule ) {
368
+            $rules[$key] = is_string( $rule ) ? explode( '|', $rule ) : $rule;
369 369
         }
370 370
 
371 371
         $this->rules = $rules;
@@ -380,11 +380,11 @@  discard block
 block discarded – undo
380 380
      *
381 381
      * @return bool
382 382
      */
383
-    protected function shouldStopValidating($attribute)
383
+    protected function shouldStopValidating( $attribute )
384 384
     {
385
-        return $this->hasRule($attribute, $this->implicitRules)
386
-            && isset($this->failedRules[$attribute])
387
-            && array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules);
385
+        return $this->hasRule( $attribute, $this->implicitRules )
386
+            && isset( $this->failedRules[$attribute] )
387
+            && array_intersect( array_keys( $this->failedRules[$attribute] ), $this->implicitRules );
388 388
     }
389 389
 
390 390
     /**
@@ -394,12 +394,12 @@  discard block
 block discarded – undo
394 394
      *
395 395
      * @return string
396 396
      */
397
-    protected function snakeCase($string)
397
+    protected function snakeCase( $string )
398 398
     {
399
-        if (!ctype_lower($string)) {
400
-            $string = preg_replace('/\s+/u', '', $string);
401
-            $string = preg_replace('/(.)(?=[A-Z])/u', '$1_', $string);
402
-            $string = mb_strtolower($string, 'UTF-8');
399
+        if( !ctype_lower( $string ) ) {
400
+            $string = preg_replace( '/\s+/u', '', $string );
401
+            $string = preg_replace( '/(.)(?=[A-Z])/u', '$1_', $string );
402
+            $string = mb_strtolower( $string, 'UTF-8' );
403 403
         }
404 404
 
405 405
         return $string;
@@ -414,22 +414,22 @@  discard block
 block discarded – undo
414 414
      *
415 415
      * @return string|null
416 416
      */
417
-    protected function translator($key, $rule, $attribute, array $parameters)
417
+    protected function translator( $key, $rule, $attribute, array $parameters )
418 418
     {
419 419
         $strings = []; //glsr_resolve( 'Strings' )->validation();
420 420
 
421
-        $message = isset($strings[$key])
421
+        $message = isset( $strings[$key] )
422 422
             ? $strings[$key]
423 423
             : false;
424 424
 
425
-        if (!$message) {
425
+        if( !$message ) {
426 426
             return;
427 427
         }
428 428
 
429
-        $message = str_replace(':attribute', $attribute, $message);
429
+        $message = str_replace( ':attribute', $attribute, $message );
430 430
 
431
-        if (method_exists($this, $replacer = "replace{$rule}")) {
432
-            $message = $this->$replacer($message, $parameters);
431
+        if( method_exists( $this, $replacer = "replace{$rule}" ) ) {
432
+            $message = $this->$replacer( $message, $parameters );
433 433
         }
434 434
 
435 435
         return $message;
@@ -447,11 +447,11 @@  discard block
 block discarded – undo
447 447
      *
448 448
      * @return bool
449 449
      */
450
-    protected function validateAccepted($value)
450
+    protected function validateAccepted( $value )
451 451
     {
452 452
         $acceptable = ['yes', 'on', '1', 1, true, 'true'];
453 453
 
454
-        return $this->validateRequired($value) && in_array($value, $acceptable, true);
454
+        return $this->validateRequired( $value ) && in_array( $value, $acceptable, true );
455 455
     }
456 456
 
457 457
     /**
@@ -463,22 +463,22 @@  discard block
 block discarded – undo
463 463
      * @return void
464 464
      * @throws BadMethodCallException
465 465
      */
466
-    protected function validateAttribute($rule, $attribute)
466
+    protected function validateAttribute( $rule, $attribute )
467 467
     {
468
-        list($rule, $parameters) = $this->parseRule($rule);
468
+        list( $rule, $parameters ) = $this->parseRule( $rule );
469 469
 
470
-        if ('' == $rule) {
470
+        if( '' == $rule ) {
471 471
             return;
472 472
         }
473 473
 
474 474
         $method = "validate{$rule}";
475 475
 
476
-        if (!method_exists($this, $method)) {
477
-            throw new BadMethodCallException("Method [$method] does not exist.");
476
+        if( !method_exists( $this, $method ) ) {
477
+            throw new BadMethodCallException( "Method [$method] does not exist." );
478 478
         }
479 479
 
480
-        if (!$this->$method($this->getValue($attribute), $attribute, $parameters)) {
481
-            $this->addFailure($attribute, $rule, $parameters);
480
+        if( !$this->$method( $this->getValue( $attribute ), $attribute, $parameters ) ) {
481
+            $this->addFailure( $attribute, $rule, $parameters );
482 482
         }
483 483
     }
484 484
 
@@ -490,11 +490,11 @@  discard block
 block discarded – undo
490 490
      *
491 491
      * @return bool
492 492
      */
493
-    protected function validateBetween($value, $attribute, array $parameters)
493
+    protected function validateBetween( $value, $attribute, array $parameters )
494 494
     {
495
-        $this->requireParameterCount(2, $parameters, 'between');
495
+        $this->requireParameterCount( 2, $parameters, 'between' );
496 496
 
497
-        $size = $this->getSize($attribute, $value);
497
+        $size = $this->getSize( $attribute, $value );
498 498
 
499 499
         return $size >= $parameters[0] && $size <= $parameters[1];
500 500
     }
@@ -506,9 +506,9 @@  discard block
 block discarded – undo
506 506
      *
507 507
      * @return bool
508 508
      */
509
-    protected function validateEmail($value)
509
+    protected function validateEmail( $value )
510 510
     {
511
-        return false !== filter_var($value, FILTER_VALIDATE_EMAIL);
511
+        return false !== filter_var( $value, FILTER_VALIDATE_EMAIL );
512 512
     }
513 513
 
514 514
     /**
@@ -519,11 +519,11 @@  discard block
 block discarded – undo
519 519
      *
520 520
      * @return bool
521 521
      */
522
-    protected function validateMax($value, $attribute, array $parameters)
522
+    protected function validateMax( $value, $attribute, array $parameters )
523 523
     {
524
-        $this->requireParameterCount(1, $parameters, 'max');
524
+        $this->requireParameterCount( 1, $parameters, 'max' );
525 525
 
526
-        return $this->getSize($attribute, $value) <= $parameters[0];
526
+        return $this->getSize( $attribute, $value ) <= $parameters[0];
527 527
     }
528 528
 
529 529
     /**
@@ -534,11 +534,11 @@  discard block
 block discarded – undo
534 534
      *
535 535
      * @return bool
536 536
      */
537
-    protected function validateMin($value, $attribute, array $parameters)
537
+    protected function validateMin( $value, $attribute, array $parameters )
538 538
     {
539
-        $this->requireParameterCount(1, $parameters, 'min');
539
+        $this->requireParameterCount( 1, $parameters, 'min' );
540 540
 
541
-        return $this->getSize($attribute, $value) >= $parameters[0];
541
+        return $this->getSize( $attribute, $value ) >= $parameters[0];
542 542
     }
543 543
 
544 544
     /**
@@ -548,9 +548,9 @@  discard block
 block discarded – undo
548 548
      *
549 549
      * @return bool
550 550
      */
551
-    protected function validateNumeric($value)
551
+    protected function validateNumeric( $value )
552 552
     {
553
-        return is_numeric($value);
553
+        return is_numeric( $value );
554 554
     }
555 555
 
556 556
     /**
@@ -560,12 +560,12 @@  discard block
 block discarded – undo
560 560
      *
561 561
      * @return bool
562 562
      */
563
-    protected function validateRequired($value)
563
+    protected function validateRequired( $value )
564 564
     {
565
-        if (is_string($value)) {
566
-            $value = trim($value);
565
+        if( is_string( $value ) ) {
566
+            $value = trim( $value );
567 567
         }
568
-        return is_null($value) || empty($value)
568
+        return is_null( $value ) || empty( $value )
569 569
             ? false
570 570
             : true;
571 571
     }
Please login to merge, or discard this patch.
Braces   +5 added lines, -4 removed lines patch added patch discarded remove patch
@@ -5,8 +5,7 @@  discard block
 block discarded – undo
5 5
 use BadMethodCallException;
6 6
 use InvalidArgumentException;
7 7
 
8
-class Validator
9
-{
8
+class Validator {
10 9
     /**
11 10
      * @var array
12 11
      */
@@ -192,7 +191,8 @@  discard block
 block discarded – undo
192 191
 
193 192
         if (is_numeric($value) && $hasNumeric) {
194 193
             return $value;
195
-        } elseif (is_array($value)) {
194
+        }
195
+        elseif (is_array($value)) {
196 196
             return count($value);
197 197
         }
198 198
 
@@ -256,7 +256,8 @@  discard block
 block discarded – undo
256 256
         // If an object was provided, get its public properties
257 257
         if (is_object($data)) {
258 258
             $this->data = get_object_vars($data);
259
-        } else {
259
+        }
260
+        else {
260 261
             $this->data = $data;
261 262
         }
262 263
 
Please login to merge, or discard this patch.
src/Services/Normalizer.php 3 patches
Indentation   +227 added lines, -227 removed lines patch added patch discarded remove patch
@@ -4,231 +4,231 @@
 block discarded – undo
4 4
 
5 5
 class Normalizer
6 6
 {
7
-    const BOOLEAN_ATTRIBUTES = [
8
-        'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden',
9
-        'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck',
10
-        'webkitdirectory',
11
-    ];
12
-
13
-    const FORM_ATTRIBUTES = [
14
-        'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype',
15
-        'method', 'name', 'novalidate', 'target',
16
-    ];
17
-
18
-    const GLOBAL_ATTRIBUTES = [
19
-        'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone',
20
-        'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title',
21
-    ];
22
-
23
-    const GLOBAL_WILDCARD_ATTRIBUTES = [
24
-        'aria-', 'data-', 'item', 'on',
25
-    ];
26
-
27
-    const INPUT_ATTRIBUTES = [
28
-        'accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'capture',
29
-        'checked', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod',
30
-        'formnovalidate', 'formtarget', 'height', 'incremental', 'inputmode', 'list', 'max',
31
-        'maxlength', 'min', 'minlength', 'mozactionhint', 'multiple', 'name', 'pattern',
32
-        'placeholder', 'readonly', 'required', 'results', 'selectionDirection', 'size', 'src',
33
-        'step', 'type', 'value', 'webkitdirectory', 'width', 'x-moz-errormessage',
34
-    ];
35
-
36
-    const INPUT_TYPES = [
37
-        'button', 'checkbox', 'color', 'date', 'datetime', 'datetime-local', 'email', 'file',
38
-        'hidden', 'image', 'max', 'min', 'month', 'number', 'password', 'radio', 'range',
39
-        'reset', 'search', 'step', 'submit', 'tel', 'text', 'time', 'url', 'value', 'week',
40
-    ];
41
-
42
-    const SELECT_ATTRIBUTES = [
43
-        'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size',
44
-    ];
45
-
46
-    const TEXTAREA_ATTRIBUTES = [
47
-        'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength',
48
-        'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows',
49
-        'selectionDirection', 'selectionEnd', 'selectionStart', 'wrap',
50
-    ];
51
-
52
-    /**
53
-     * @var array
54
-     */
55
-    protected $args;
56
-
57
-    public function __construct()
58
-    {
59
-        $this->args = [];
60
-    }
61
-
62
-    /**
63
-     * Normalize form attributes.
64
-     *
65
-     * @return array|string
66
-     */
67
-    public function form(array $args = [], $implode = false)
68
-    {
69
-        $attributes = $this->parseAttributes(self::FORM_ATTRIBUTES, $args);
70
-
71
-        return $this->maybeImplode($attributes, $implode);
72
-    }
73
-
74
-    /**
75
-     * Normalize input attributes.
76
-     *
77
-     * @return array|string
78
-     */
79
-    public function input(array $args = [], $implode = false)
80
-    {
81
-        $this->filterInputType();
82
-
83
-        $attributes = $this->parseAttributes(self::INPUT_ATTRIBUTES, $args);
84
-
85
-        return $this->maybeImplode($attributes, $implode);
86
-    }
87
-
88
-    /**
89
-     * Possibly implode attributes into a string.
90
-     *
91
-     * @param bool|string $implode
92
-     *
93
-     * @return array|string
94
-     */
95
-    public function maybeImplode(array $attributes, $implode = true)
96
-    {
97
-        if (!$implode || 'implode' !== $implode) {
98
-            return $attributes;
99
-        }
100
-        $results = [];
101
-        foreach ($attributes as $key => $value) {
102
-            // if data attributes, use single quotes in case of json encoded values
103
-            $quotes = false !== stripos($key, 'data-') ? "'" : '"';
104
-            if (is_array($value)) {
105
-                $value = json_encode($value);
106
-                $quotes = "'";
107
-            }
108
-            $results[] = is_string($key)
109
-                ? sprintf('%1$s=%3$s%2$s%3$s', $key, $value, $quotes)
110
-                : $value;
111
-        }
112
-        return implode(' ', $results);
113
-    }
114
-
115
-    /**
116
-     * Normalize select attributes.
117
-     *
118
-     * @return array|string
119
-     */
120
-    public function select(array $args = [], $implode = false)
121
-    {
122
-        $attributes = $this->parseAttributes(self::SELECT_ATTRIBUTES, $args);
123
-
124
-        return $this->maybeImplode($attributes, $implode);
125
-    }
126
-
127
-    /**
128
-     * Normalize textarea attributes.
129
-     *
130
-     * @return array|string
131
-     */
132
-    public function textarea(array $args = [], $implode = false)
133
-    {
134
-        $attributes = $this->parseAttributes(self::TEXTAREA_ATTRIBUTES, $args);
135
-
136
-        return $this->maybeImplode($attributes, $implode);
137
-    }
138
-
139
-    /**
140
-     * Filter attributes by the provided attrribute keys and remove any non-boolean keys
141
-     * with empty values.
142
-     *
143
-     * @return array
144
-     */
145
-    protected function filterAttributes(array $attributeKeys)
146
-    {
147
-        $filtered = array_intersect_key($this->args, array_flip($attributeKeys));
148
-
149
-        // normalize truthy boolean attributes
150
-        foreach ($filtered as $key => $value) {
151
-            if (!in_array($key, self::BOOLEAN_ATTRIBUTES)) {
152
-                continue;
153
-            }
154
-
155
-            if (false !== $value) {
156
-                $filtered[$key] = '';
157
-                continue;
158
-            }
159
-
160
-            unset($filtered[$key]);
161
-        }
162
-
163
-        $filteredKeys = array_filter(array_keys($filtered), function ($key) use ($filtered) {
164
-            return !(
165
-                empty($filtered[$key])
166
-                && !is_numeric($filtered[$key])
167
-                && !in_array($key, self::BOOLEAN_ATTRIBUTES)
168
-            );
169
-        });
170
-
171
-        return array_intersect_key($filtered, array_flip($filteredKeys));
172
-    }
173
-
174
-    /**
175
-     * @return array
176
-     */
177
-    protected function filterGlobalAttributes()
178
-    {
179
-        $global = $this->filterAttributes(self::GLOBAL_ATTRIBUTES);
180
-
181
-        $wildcards = [];
182
-
183
-        foreach (self::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) {
184
-            foreach ($this->args as $key => $value) {
185
-                $length = strlen($wildcard);
186
-                $result = substr($key, 0, $length) === $wildcard;
187
-
188
-                if ($result) {
189
-                    // only allow data attributes to have an empty value
190
-                    if ('data-' != $wildcard && empty($value)) {
191
-                        continue;
192
-                    }
193
-
194
-                    if (is_array($value)) {
195
-                        if ('data-' != $wildcard) {
196
-                            continue;
197
-                        }
198
-
199
-                        $value = json_encode($value);
200
-                    }
201
-
202
-                    $wildcards[$key] = $value;
203
-                }
204
-            }
205
-        }
206
-
207
-        return array_merge($global, $wildcards);
208
-    }
209
-
210
-    /**
211
-     * @return void
212
-     */
213
-    protected function filterInputType()
214
-    {
215
-        if (!isset($this->args['type']) || !in_array($this->args['type'], self::INPUT_TYPES)) {
216
-            $this->args['type'] = 'text';
217
-        }
218
-    }
219
-
220
-    /**
221
-     * @return array
222
-     */
223
-    protected function parseAttributes(array $attributes, array $args = [])
224
-    {
225
-        if (!empty($args)) {
226
-            $this->args = array_change_key_case($args);
227
-        }
228
-
229
-        $global = $this->filterGlobalAttributes();
230
-        $local = $this->filterAttributes($attributes);
231
-
232
-        return array_merge($global, $local);
233
-    }
7
+	const BOOLEAN_ATTRIBUTES = [
8
+		'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden',
9
+		'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck',
10
+		'webkitdirectory',
11
+	];
12
+
13
+	const FORM_ATTRIBUTES = [
14
+		'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype',
15
+		'method', 'name', 'novalidate', 'target',
16
+	];
17
+
18
+	const GLOBAL_ATTRIBUTES = [
19
+		'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone',
20
+		'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title',
21
+	];
22
+
23
+	const GLOBAL_WILDCARD_ATTRIBUTES = [
24
+		'aria-', 'data-', 'item', 'on',
25
+	];
26
+
27
+	const INPUT_ATTRIBUTES = [
28
+		'accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'capture',
29
+		'checked', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod',
30
+		'formnovalidate', 'formtarget', 'height', 'incremental', 'inputmode', 'list', 'max',
31
+		'maxlength', 'min', 'minlength', 'mozactionhint', 'multiple', 'name', 'pattern',
32
+		'placeholder', 'readonly', 'required', 'results', 'selectionDirection', 'size', 'src',
33
+		'step', 'type', 'value', 'webkitdirectory', 'width', 'x-moz-errormessage',
34
+	];
35
+
36
+	const INPUT_TYPES = [
37
+		'button', 'checkbox', 'color', 'date', 'datetime', 'datetime-local', 'email', 'file',
38
+		'hidden', 'image', 'max', 'min', 'month', 'number', 'password', 'radio', 'range',
39
+		'reset', 'search', 'step', 'submit', 'tel', 'text', 'time', 'url', 'value', 'week',
40
+	];
41
+
42
+	const SELECT_ATTRIBUTES = [
43
+		'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size',
44
+	];
45
+
46
+	const TEXTAREA_ATTRIBUTES = [
47
+		'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength',
48
+		'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows',
49
+		'selectionDirection', 'selectionEnd', 'selectionStart', 'wrap',
50
+	];
51
+
52
+	/**
53
+	 * @var array
54
+	 */
55
+	protected $args;
56
+
57
+	public function __construct()
58
+	{
59
+		$this->args = [];
60
+	}
61
+
62
+	/**
63
+	 * Normalize form attributes.
64
+	 *
65
+	 * @return array|string
66
+	 */
67
+	public function form(array $args = [], $implode = false)
68
+	{
69
+		$attributes = $this->parseAttributes(self::FORM_ATTRIBUTES, $args);
70
+
71
+		return $this->maybeImplode($attributes, $implode);
72
+	}
73
+
74
+	/**
75
+	 * Normalize input attributes.
76
+	 *
77
+	 * @return array|string
78
+	 */
79
+	public function input(array $args = [], $implode = false)
80
+	{
81
+		$this->filterInputType();
82
+
83
+		$attributes = $this->parseAttributes(self::INPUT_ATTRIBUTES, $args);
84
+
85
+		return $this->maybeImplode($attributes, $implode);
86
+	}
87
+
88
+	/**
89
+	 * Possibly implode attributes into a string.
90
+	 *
91
+	 * @param bool|string $implode
92
+	 *
93
+	 * @return array|string
94
+	 */
95
+	public function maybeImplode(array $attributes, $implode = true)
96
+	{
97
+		if (!$implode || 'implode' !== $implode) {
98
+			return $attributes;
99
+		}
100
+		$results = [];
101
+		foreach ($attributes as $key => $value) {
102
+			// if data attributes, use single quotes in case of json encoded values
103
+			$quotes = false !== stripos($key, 'data-') ? "'" : '"';
104
+			if (is_array($value)) {
105
+				$value = json_encode($value);
106
+				$quotes = "'";
107
+			}
108
+			$results[] = is_string($key)
109
+				? sprintf('%1$s=%3$s%2$s%3$s', $key, $value, $quotes)
110
+				: $value;
111
+		}
112
+		return implode(' ', $results);
113
+	}
114
+
115
+	/**
116
+	 * Normalize select attributes.
117
+	 *
118
+	 * @return array|string
119
+	 */
120
+	public function select(array $args = [], $implode = false)
121
+	{
122
+		$attributes = $this->parseAttributes(self::SELECT_ATTRIBUTES, $args);
123
+
124
+		return $this->maybeImplode($attributes, $implode);
125
+	}
126
+
127
+	/**
128
+	 * Normalize textarea attributes.
129
+	 *
130
+	 * @return array|string
131
+	 */
132
+	public function textarea(array $args = [], $implode = false)
133
+	{
134
+		$attributes = $this->parseAttributes(self::TEXTAREA_ATTRIBUTES, $args);
135
+
136
+		return $this->maybeImplode($attributes, $implode);
137
+	}
138
+
139
+	/**
140
+	 * Filter attributes by the provided attrribute keys and remove any non-boolean keys
141
+	 * with empty values.
142
+	 *
143
+	 * @return array
144
+	 */
145
+	protected function filterAttributes(array $attributeKeys)
146
+	{
147
+		$filtered = array_intersect_key($this->args, array_flip($attributeKeys));
148
+
149
+		// normalize truthy boolean attributes
150
+		foreach ($filtered as $key => $value) {
151
+			if (!in_array($key, self::BOOLEAN_ATTRIBUTES)) {
152
+				continue;
153
+			}
154
+
155
+			if (false !== $value) {
156
+				$filtered[$key] = '';
157
+				continue;
158
+			}
159
+
160
+			unset($filtered[$key]);
161
+		}
162
+
163
+		$filteredKeys = array_filter(array_keys($filtered), function ($key) use ($filtered) {
164
+			return !(
165
+				empty($filtered[$key])
166
+				&& !is_numeric($filtered[$key])
167
+				&& !in_array($key, self::BOOLEAN_ATTRIBUTES)
168
+			);
169
+		});
170
+
171
+		return array_intersect_key($filtered, array_flip($filteredKeys));
172
+	}
173
+
174
+	/**
175
+	 * @return array
176
+	 */
177
+	protected function filterGlobalAttributes()
178
+	{
179
+		$global = $this->filterAttributes(self::GLOBAL_ATTRIBUTES);
180
+
181
+		$wildcards = [];
182
+
183
+		foreach (self::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) {
184
+			foreach ($this->args as $key => $value) {
185
+				$length = strlen($wildcard);
186
+				$result = substr($key, 0, $length) === $wildcard;
187
+
188
+				if ($result) {
189
+					// only allow data attributes to have an empty value
190
+					if ('data-' != $wildcard && empty($value)) {
191
+						continue;
192
+					}
193
+
194
+					if (is_array($value)) {
195
+						if ('data-' != $wildcard) {
196
+							continue;
197
+						}
198
+
199
+						$value = json_encode($value);
200
+					}
201
+
202
+					$wildcards[$key] = $value;
203
+				}
204
+			}
205
+		}
206
+
207
+		return array_merge($global, $wildcards);
208
+	}
209
+
210
+	/**
211
+	 * @return void
212
+	 */
213
+	protected function filterInputType()
214
+	{
215
+		if (!isset($this->args['type']) || !in_array($this->args['type'], self::INPUT_TYPES)) {
216
+			$this->args['type'] = 'text';
217
+		}
218
+	}
219
+
220
+	/**
221
+	 * @return array
222
+	 */
223
+	protected function parseAttributes(array $attributes, array $args = [])
224
+	{
225
+		if (!empty($args)) {
226
+			$this->args = array_change_key_case($args);
227
+		}
228
+
229
+		$global = $this->filterGlobalAttributes();
230
+		$local = $this->filterAttributes($attributes);
231
+
232
+		return array_merge($global, $local);
233
+	}
234 234
 }
Please login to merge, or discard this patch.
Spacing   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -64,11 +64,11 @@  discard block
 block discarded – undo
64 64
      *
65 65
      * @return array|string
66 66
      */
67
-    public function form(array $args = [], $implode = false)
67
+    public function form( array $args = [], $implode = false )
68 68
     {
69
-        $attributes = $this->parseAttributes(self::FORM_ATTRIBUTES, $args);
69
+        $attributes = $this->parseAttributes( self::FORM_ATTRIBUTES, $args );
70 70
 
71
-        return $this->maybeImplode($attributes, $implode);
71
+        return $this->maybeImplode( $attributes, $implode );
72 72
     }
73 73
 
74 74
     /**
@@ -76,13 +76,13 @@  discard block
 block discarded – undo
76 76
      *
77 77
      * @return array|string
78 78
      */
79
-    public function input(array $args = [], $implode = false)
79
+    public function input( array $args = [], $implode = false )
80 80
     {
81 81
         $this->filterInputType();
82 82
 
83
-        $attributes = $this->parseAttributes(self::INPUT_ATTRIBUTES, $args);
83
+        $attributes = $this->parseAttributes( self::INPUT_ATTRIBUTES, $args );
84 84
 
85
-        return $this->maybeImplode($attributes, $implode);
85
+        return $this->maybeImplode( $attributes, $implode );
86 86
     }
87 87
 
88 88
     /**
@@ -92,24 +92,24 @@  discard block
 block discarded – undo
92 92
      *
93 93
      * @return array|string
94 94
      */
95
-    public function maybeImplode(array $attributes, $implode = true)
95
+    public function maybeImplode( array $attributes, $implode = true )
96 96
     {
97
-        if (!$implode || 'implode' !== $implode) {
97
+        if( !$implode || 'implode' !== $implode ) {
98 98
             return $attributes;
99 99
         }
100 100
         $results = [];
101
-        foreach ($attributes as $key => $value) {
101
+        foreach( $attributes as $key => $value ) {
102 102
             // if data attributes, use single quotes in case of json encoded values
103
-            $quotes = false !== stripos($key, 'data-') ? "'" : '"';
104
-            if (is_array($value)) {
105
-                $value = json_encode($value);
103
+            $quotes = false !== stripos( $key, 'data-' ) ? "'" : '"';
104
+            if( is_array( $value ) ) {
105
+                $value = json_encode( $value );
106 106
                 $quotes = "'";
107 107
             }
108
-            $results[] = is_string($key)
109
-                ? sprintf('%1$s=%3$s%2$s%3$s', $key, $value, $quotes)
108
+            $results[] = is_string( $key )
109
+                ? sprintf( '%1$s=%3$s%2$s%3$s', $key, $value, $quotes )
110 110
                 : $value;
111 111
         }
112
-        return implode(' ', $results);
112
+        return implode( ' ', $results );
113 113
     }
114 114
 
115 115
     /**
@@ -117,11 +117,11 @@  discard block
 block discarded – undo
117 117
      *
118 118
      * @return array|string
119 119
      */
120
-    public function select(array $args = [], $implode = false)
120
+    public function select( array $args = [], $implode = false )
121 121
     {
122
-        $attributes = $this->parseAttributes(self::SELECT_ATTRIBUTES, $args);
122
+        $attributes = $this->parseAttributes( self::SELECT_ATTRIBUTES, $args );
123 123
 
124
-        return $this->maybeImplode($attributes, $implode);
124
+        return $this->maybeImplode( $attributes, $implode );
125 125
     }
126 126
 
127 127
     /**
@@ -129,11 +129,11 @@  discard block
 block discarded – undo
129 129
      *
130 130
      * @return array|string
131 131
      */
132
-    public function textarea(array $args = [], $implode = false)
132
+    public function textarea( array $args = [], $implode = false )
133 133
     {
134
-        $attributes = $this->parseAttributes(self::TEXTAREA_ATTRIBUTES, $args);
134
+        $attributes = $this->parseAttributes( self::TEXTAREA_ATTRIBUTES, $args );
135 135
 
136
-        return $this->maybeImplode($attributes, $implode);
136
+        return $this->maybeImplode( $attributes, $implode );
137 137
     }
138 138
 
139 139
     /**
@@ -142,33 +142,33 @@  discard block
 block discarded – undo
142 142
      *
143 143
      * @return array
144 144
      */
145
-    protected function filterAttributes(array $attributeKeys)
145
+    protected function filterAttributes( array $attributeKeys )
146 146
     {
147
-        $filtered = array_intersect_key($this->args, array_flip($attributeKeys));
147
+        $filtered = array_intersect_key( $this->args, array_flip( $attributeKeys ) );
148 148
 
149 149
         // normalize truthy boolean attributes
150
-        foreach ($filtered as $key => $value) {
151
-            if (!in_array($key, self::BOOLEAN_ATTRIBUTES)) {
150
+        foreach( $filtered as $key => $value ) {
151
+            if( !in_array( $key, self::BOOLEAN_ATTRIBUTES ) ) {
152 152
                 continue;
153 153
             }
154 154
 
155
-            if (false !== $value) {
155
+            if( false !== $value ) {
156 156
                 $filtered[$key] = '';
157 157
                 continue;
158 158
             }
159 159
 
160
-            unset($filtered[$key]);
160
+            unset( $filtered[$key] );
161 161
         }
162 162
 
163
-        $filteredKeys = array_filter(array_keys($filtered), function ($key) use ($filtered) {
163
+        $filteredKeys = array_filter( array_keys( $filtered ), function( $key ) use ( $filtered ) {
164 164
             return !(
165
-                empty($filtered[$key])
166
-                && !is_numeric($filtered[$key])
167
-                && !in_array($key, self::BOOLEAN_ATTRIBUTES)
165
+                empty( $filtered[$key] )
166
+                && !is_numeric( $filtered[$key] )
167
+                && !in_array( $key, self::BOOLEAN_ATTRIBUTES )
168 168
             );
169 169
         });
170 170
 
171
-        return array_intersect_key($filtered, array_flip($filteredKeys));
171
+        return array_intersect_key( $filtered, array_flip( $filteredKeys ) );
172 172
     }
173 173
 
174 174
     /**
@@ -176,27 +176,27 @@  discard block
 block discarded – undo
176 176
      */
177 177
     protected function filterGlobalAttributes()
178 178
     {
179
-        $global = $this->filterAttributes(self::GLOBAL_ATTRIBUTES);
179
+        $global = $this->filterAttributes( self::GLOBAL_ATTRIBUTES );
180 180
 
181 181
         $wildcards = [];
182 182
 
183
-        foreach (self::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) {
184
-            foreach ($this->args as $key => $value) {
185
-                $length = strlen($wildcard);
186
-                $result = substr($key, 0, $length) === $wildcard;
183
+        foreach( self::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard ) {
184
+            foreach( $this->args as $key => $value ) {
185
+                $length = strlen( $wildcard );
186
+                $result = substr( $key, 0, $length ) === $wildcard;
187 187
 
188
-                if ($result) {
188
+                if( $result ) {
189 189
                     // only allow data attributes to have an empty value
190
-                    if ('data-' != $wildcard && empty($value)) {
190
+                    if( 'data-' != $wildcard && empty( $value ) ) {
191 191
                         continue;
192 192
                     }
193 193
 
194
-                    if (is_array($value)) {
195
-                        if ('data-' != $wildcard) {
194
+                    if( is_array( $value ) ) {
195
+                        if( 'data-' != $wildcard ) {
196 196
                             continue;
197 197
                         }
198 198
 
199
-                        $value = json_encode($value);
199
+                        $value = json_encode( $value );
200 200
                     }
201 201
 
202 202
                     $wildcards[$key] = $value;
@@ -204,7 +204,7 @@  discard block
 block discarded – undo
204 204
             }
205 205
         }
206 206
 
207
-        return array_merge($global, $wildcards);
207
+        return array_merge( $global, $wildcards );
208 208
     }
209 209
 
210 210
     /**
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
      */
213 213
     protected function filterInputType()
214 214
     {
215
-        if (!isset($this->args['type']) || !in_array($this->args['type'], self::INPUT_TYPES)) {
215
+        if( !isset( $this->args['type'] ) || !in_array( $this->args['type'], self::INPUT_TYPES ) ) {
216 216
             $this->args['type'] = 'text';
217 217
         }
218 218
     }
@@ -220,15 +220,15 @@  discard block
 block discarded – undo
220 220
     /**
221 221
      * @return array
222 222
      */
223
-    protected function parseAttributes(array $attributes, array $args = [])
223
+    protected function parseAttributes( array $attributes, array $args = [] )
224 224
     {
225
-        if (!empty($args)) {
226
-            $this->args = array_change_key_case($args);
225
+        if( !empty( $args ) ) {
226
+            $this->args = array_change_key_case( $args );
227 227
         }
228 228
 
229 229
         $global = $this->filterGlobalAttributes();
230
-        $local = $this->filterAttributes($attributes);
230
+        $local = $this->filterAttributes( $attributes );
231 231
 
232
-        return array_merge($global, $local);
232
+        return array_merge( $global, $local );
233 233
     }
234 234
 }
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2,8 +2,7 @@
 block discarded – undo
2 2
 
3 3
 namespace GeminiLabs\Castor\Services;
4 4
 
5
-class Normalizer
6
-{
5
+class Normalizer {
7 6
     const BOOLEAN_ATTRIBUTES = [
8 7
         'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden',
9 8
         'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck',
Please login to merge, or discard this patch.
castor.php 3 patches
Braces   +2 added lines, -1 removed lines patch added patch discarded remove patch
@@ -24,7 +24,8 @@
 block discarded – undo
24 24
 
25 25
 if (version_compare($wp_version, '5.3', '<')) {
26 26
     require_once ABSPATH.'/'.WPINC.'/class-oembed.php';
27
-} else {
27
+}
28
+else {
28 29
     require_once ABSPATH.'/'.WPINC.'/class-wp-oembed.php';
29 30
 }
30 31
 
Please login to merge, or discard this patch.
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -5,36 +5,36 @@
 block discarded – undo
5 5
 global $wp_version;
6 6
 
7 7
 if (!is_admin() && version_compare('7.1', phpversion(), '>')) {
8
-    wp_die(
9
-        __('You must be using PHP 7.1.0 or greater.', 'castor'),
10
-        __('Unsupported PHP version', 'castor')
11
-    );
8
+	wp_die(
9
+		__('You must be using PHP 7.1.0 or greater.', 'castor'),
10
+		__('Unsupported PHP version', 'castor')
11
+	);
12 12
 }
13 13
 if (!is_admin() && version_compare('5.2', $wp_version, '>')) {
14
-    wp_die(
15
-        __('You must be using WordPress 5.2.0 or greater.', 'castor'),
16
-        __('Unsupported WordPress version', 'castor')
17
-    );
14
+	wp_die(
15
+		__('You must be using WordPress 5.2.0 or greater.', 'castor'),
16
+		__('Unsupported WordPress version', 'castor')
17
+	);
18 18
 }
19 19
 if (is_customize_preview() && filter_input(INPUT_GET, 'theme')) {
20
-    wp_die(
21
-        __('Theme must be activated prior to using the customizer.', 'castor')
22
-    );
20
+	wp_die(
21
+		__('Theme must be activated prior to using the customizer.', 'castor')
22
+	);
23 23
 }
24 24
 
25 25
 define('CASTOR_FRAMEWORK_VERSION', '1.4.3');
26 26
 
27 27
 if (version_compare($wp_version, '5.3', '<')) {
28
-    require_once ABSPATH.'/'.WPINC.'/class-oembed.php';
28
+	require_once ABSPATH.'/'.WPINC.'/class-oembed.php';
29 29
 } else {
30
-    require_once ABSPATH.'/'.WPINC.'/class-wp-oembed.php';
30
+	require_once ABSPATH.'/'.WPINC.'/class-wp-oembed.php';
31 31
 }
32 32
 
33 33
 if (!function_exists('castor_app')) {
34
-    function castor_app()
35
-    {
36
-        return \GeminiLabs\Castor\Application::getInstance();
37
-    }
34
+	function castor_app()
35
+	{
36
+		return \GeminiLabs\Castor\Application::getInstance();
37
+	}
38 38
 }
39 39
 
40 40
 \GeminiLabs\Castor\Application::getInstance()->init();
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -1,36 +1,36 @@
 block discarded – undo
1 1
 <?php
2 2
 
3
-defined('WPINC') || die;
3
+defined( 'WPINC' ) || die;
4 4
 
5 5
 global $wp_version;
6 6
 
7
-if (!is_admin() && version_compare('7.1', phpversion(), '>')) {
7
+if( !is_admin() && version_compare( '7.1', phpversion(), '>' ) ) {
8 8
     wp_die(
9
-        __('You must be using PHP 7.1.0 or greater.', 'castor'),
10
-        __('Unsupported PHP version', 'castor')
9
+        __( 'You must be using PHP 7.1.0 or greater.', 'castor' ),
10
+        __( 'Unsupported PHP version', 'castor' )
11 11
     );
12 12
 }
13
-if (!is_admin() && version_compare('5.2', $wp_version, '>')) {
13
+if( !is_admin() && version_compare( '5.2', $wp_version, '>' ) ) {
14 14
     wp_die(
15
-        __('You must be using WordPress 5.2.0 or greater.', 'castor'),
16
-        __('Unsupported WordPress version', 'castor')
15
+        __( 'You must be using WordPress 5.2.0 or greater.', 'castor' ),
16
+        __( 'Unsupported WordPress version', 'castor' )
17 17
     );
18 18
 }
19
-if (is_customize_preview() && filter_input(INPUT_GET, 'theme')) {
19
+if( is_customize_preview() && filter_input( INPUT_GET, 'theme' ) ) {
20 20
     wp_die(
21
-        __('Theme must be activated prior to using the customizer.', 'castor')
21
+        __( 'Theme must be activated prior to using the customizer.', 'castor' )
22 22
     );
23 23
 }
24 24
 
25
-define('CASTOR_FRAMEWORK_VERSION', '1.4.3');
25
+define( 'CASTOR_FRAMEWORK_VERSION', '1.4.3' );
26 26
 
27
-if (version_compare($wp_version, '5.3', '<')) {
27
+if( version_compare( $wp_version, '5.3', '<' ) ) {
28 28
     require_once ABSPATH.'/'.WPINC.'/class-oembed.php';
29 29
 } else {
30 30
     require_once ABSPATH.'/'.WPINC.'/class-wp-oembed.php';
31 31
 }
32 32
 
33
-if (!function_exists('castor_app')) {
33
+if( !function_exists( 'castor_app' ) ) {
34 34
     function castor_app()
35 35
     {
36 36
         return \GeminiLabs\Castor\Application::getInstance();
Please login to merge, or discard this patch.
src/Container.php 3 patches
Indentation   +221 added lines, -221 removed lines patch added patch discarded remove patch
@@ -9,225 +9,225 @@
 block discarded – undo
9 9
 
10 10
 abstract class Container
11 11
 {
12
-    /**
13
-     * The current globally available container (if any).
14
-     *
15
-     * @var static
16
-     */
17
-    protected static $instance;
18
-
19
-    /**
20
-     * The container's bound services.
21
-     *
22
-     * @var array
23
-     */
24
-    protected $services = [];
25
-
26
-    /**
27
-     * The container's bucket items.
28
-     *
29
-     * @var array
30
-     */
31
-    protected $bucket = [];
32
-
33
-    /**
34
-     * Set the globally available instance of the container.
35
-     *
36
-     * @return static
37
-     */
38
-    public static function getInstance()
39
-    {
40
-        if (is_null(static::$instance)) {
41
-            static::$instance = new static();
42
-        }
43
-
44
-        return static::$instance;
45
-    }
46
-
47
-    /**
48
-     * Bind a service to the container.
49
-     *
50
-     * @param string $alias
51
-     * @param mixed  $concrete
52
-     *
53
-     * @return mixed
54
-     */
55
-    public function bind($alias, $concrete)
56
-    {
57
-        $this->services[$alias] = $concrete;
58
-    }
59
-
60
-    /**
61
-     * Resolve the given type from the container.
62
-     * Allow unbound aliases that omit the root namespace
63
-     * i.e. 'Controller' translates to 'GeminiLabs\Castor\Controller'.
64
-     *
65
-     * @param mixed $abstract
66
-     *
67
-     * @return mixed
68
-     */
69
-    public function make($abstract)
70
-    {
71
-        $service = isset($this->services[$abstract])
72
-            ? $this->services[$abstract]
73
-            : $this->addNamespace($abstract);
74
-
75
-        if (is_callable($service)) {
76
-            return call_user_func_array($service, [$this]);
77
-        }
78
-        if (is_object($service)) {
79
-            return $service;
80
-        }
81
-
82
-        return $this->resolve($service);
83
-    }
84
-
85
-    /**
86
-     * Register a shared binding in the container.
87
-     *
88
-     * @param string               $abstract
89
-     * @param \Closure|string|null $concrete
90
-     *
91
-     * @return void
92
-     */
93
-    public function singleton($abstract, $concrete)
94
-    {
95
-        $this->bind($abstract, $this->make($concrete));
96
-    }
97
-
98
-    /**
99
-     * Dynamically access container bucket items.
100
-     *
101
-     * @param string $item
102
-     *
103
-     * @return mixed
104
-     */
105
-    public function __get($item)
106
-    {
107
-        return isset($this->bucket[$item])
108
-            ? $this->bucket[$item]
109
-            : null;
110
-    }
111
-
112
-    /**
113
-     * Dynamically set container bucket items.
114
-     *
115
-     * @param string $item
116
-     * @param mixed  $value
117
-     *
118
-     * @return void
119
-     */
120
-    public function __set($item, $value)
121
-    {
122
-        $this->bucket[$item] = $value;
123
-    }
124
-
125
-    /**
126
-     * Prefix the current namespace to the abstract if absent.
127
-     *
128
-     * @param string $abstract
129
-     *
130
-     * @return string
131
-     */
132
-    protected function addNamespace($abstract)
133
-    {
134
-        if (false === strpos($abstract, __NAMESPACE__) && !class_exists($abstract)) {
135
-            $abstract = __NAMESPACE__."\\$abstract";
136
-        }
137
-
138
-        return $abstract;
139
-    }
140
-
141
-    /**
142
-     * @param \ReflectionParameter $parameter
143
-     * @return null|\ReflectionClass|\ReflectionNamedType|\ReflectionType
144
-     */
145
-    protected function getClass($parameter)
146
-    {
147
-        if (version_compare(phpversion(), '8', '<')) {
148
-            return $parameter->getClass(); // @compat PHP < 8
149
-        }
150
-        return $parameter->getType();
151
-    }
152
-
153
-    /**
154
-     * Throw an exception that the concrete is not instantiable.
155
-     *
156
-     * @param string $concrete
157
-     *
158
-     * @return void
159
-     * @throws BindingResolutionException
160
-     */
161
-    protected function notInstantiable($concrete)
162
-    {
163
-        $message = "Target [$concrete] is not instantiable.";
164
-
165
-        throw new BindingResolutionException($message);
166
-    }
167
-
168
-    /**
169
-     * Resolve a class based dependency from the container.
170
-     *
171
-     * @param mixed $concrete
172
-     *
173
-     * @return mixed
174
-     * @throws BindingResolutionException
175
-     */
176
-    protected function resolve($concrete)
177
-    {
178
-        if ($concrete instanceof Closure) {
179
-            return $concrete($this);
180
-        }
181
-
182
-        $reflector = new ReflectionClass($concrete);
183
-
184
-        if (!$reflector->isInstantiable()) {
185
-            return $this->notInstantiable($concrete);
186
-        }
187
-
188
-        if (is_null(($constructor = $reflector->getConstructor()))) {
189
-            return new $concrete();
190
-        }
191
-
192
-        return $reflector->newInstanceArgs(
193
-            $this->resolveDependencies($constructor->getParameters())
194
-        );
195
-    }
196
-
197
-    /**
198
-     * Resolve a class based dependency from the container.
199
-     *
200
-     * @return mixed
201
-     * @throws BindingResolutionException
202
-     */
203
-    protected function resolveClass(ReflectionParameter $parameter)
204
-    {
205
-        try {
206
-            return $this->make($this->getClass($parameter)->getName());
207
-        } catch (BindingResolutionException $e) {
208
-            if ($parameter->isOptional()) {
209
-                return $parameter->getDefaultValue();
210
-            }
211
-            throw $e;
212
-        }
213
-    }
214
-
215
-    /**
216
-     * Resolve all of the dependencies from the ReflectionParameters.
217
-     *
218
-     * @return array
219
-     */
220
-    protected function resolveDependencies(array $dependencies)
221
-    {
222
-        $results = [];
223
-
224
-        foreach ($dependencies as $dependency) {
225
-            // If the class is null, the dependency is a string or some other primitive type
226
-            $results[] = !is_null($class = $this->getClass($dependency))
227
-                ? $this->resolveClass($dependency)
228
-                : null;
229
-        }
230
-
231
-        return $results;
232
-    }
12
+	/**
13
+	 * The current globally available container (if any).
14
+	 *
15
+	 * @var static
16
+	 */
17
+	protected static $instance;
18
+
19
+	/**
20
+	 * The container's bound services.
21
+	 *
22
+	 * @var array
23
+	 */
24
+	protected $services = [];
25
+
26
+	/**
27
+	 * The container's bucket items.
28
+	 *
29
+	 * @var array
30
+	 */
31
+	protected $bucket = [];
32
+
33
+	/**
34
+	 * Set the globally available instance of the container.
35
+	 *
36
+	 * @return static
37
+	 */
38
+	public static function getInstance()
39
+	{
40
+		if (is_null(static::$instance)) {
41
+			static::$instance = new static();
42
+		}
43
+
44
+		return static::$instance;
45
+	}
46
+
47
+	/**
48
+	 * Bind a service to the container.
49
+	 *
50
+	 * @param string $alias
51
+	 * @param mixed  $concrete
52
+	 *
53
+	 * @return mixed
54
+	 */
55
+	public function bind($alias, $concrete)
56
+	{
57
+		$this->services[$alias] = $concrete;
58
+	}
59
+
60
+	/**
61
+	 * Resolve the given type from the container.
62
+	 * Allow unbound aliases that omit the root namespace
63
+	 * i.e. 'Controller' translates to 'GeminiLabs\Castor\Controller'.
64
+	 *
65
+	 * @param mixed $abstract
66
+	 *
67
+	 * @return mixed
68
+	 */
69
+	public function make($abstract)
70
+	{
71
+		$service = isset($this->services[$abstract])
72
+			? $this->services[$abstract]
73
+			: $this->addNamespace($abstract);
74
+
75
+		if (is_callable($service)) {
76
+			return call_user_func_array($service, [$this]);
77
+		}
78
+		if (is_object($service)) {
79
+			return $service;
80
+		}
81
+
82
+		return $this->resolve($service);
83
+	}
84
+
85
+	/**
86
+	 * Register a shared binding in the container.
87
+	 *
88
+	 * @param string               $abstract
89
+	 * @param \Closure|string|null $concrete
90
+	 *
91
+	 * @return void
92
+	 */
93
+	public function singleton($abstract, $concrete)
94
+	{
95
+		$this->bind($abstract, $this->make($concrete));
96
+	}
97
+
98
+	/**
99
+	 * Dynamically access container bucket items.
100
+	 *
101
+	 * @param string $item
102
+	 *
103
+	 * @return mixed
104
+	 */
105
+	public function __get($item)
106
+	{
107
+		return isset($this->bucket[$item])
108
+			? $this->bucket[$item]
109
+			: null;
110
+	}
111
+
112
+	/**
113
+	 * Dynamically set container bucket items.
114
+	 *
115
+	 * @param string $item
116
+	 * @param mixed  $value
117
+	 *
118
+	 * @return void
119
+	 */
120
+	public function __set($item, $value)
121
+	{
122
+		$this->bucket[$item] = $value;
123
+	}
124
+
125
+	/**
126
+	 * Prefix the current namespace to the abstract if absent.
127
+	 *
128
+	 * @param string $abstract
129
+	 *
130
+	 * @return string
131
+	 */
132
+	protected function addNamespace($abstract)
133
+	{
134
+		if (false === strpos($abstract, __NAMESPACE__) && !class_exists($abstract)) {
135
+			$abstract = __NAMESPACE__."\\$abstract";
136
+		}
137
+
138
+		return $abstract;
139
+	}
140
+
141
+	/**
142
+	 * @param \ReflectionParameter $parameter
143
+	 * @return null|\ReflectionClass|\ReflectionNamedType|\ReflectionType
144
+	 */
145
+	protected function getClass($parameter)
146
+	{
147
+		if (version_compare(phpversion(), '8', '<')) {
148
+			return $parameter->getClass(); // @compat PHP < 8
149
+		}
150
+		return $parameter->getType();
151
+	}
152
+
153
+	/**
154
+	 * Throw an exception that the concrete is not instantiable.
155
+	 *
156
+	 * @param string $concrete
157
+	 *
158
+	 * @return void
159
+	 * @throws BindingResolutionException
160
+	 */
161
+	protected function notInstantiable($concrete)
162
+	{
163
+		$message = "Target [$concrete] is not instantiable.";
164
+
165
+		throw new BindingResolutionException($message);
166
+	}
167
+
168
+	/**
169
+	 * Resolve a class based dependency from the container.
170
+	 *
171
+	 * @param mixed $concrete
172
+	 *
173
+	 * @return mixed
174
+	 * @throws BindingResolutionException
175
+	 */
176
+	protected function resolve($concrete)
177
+	{
178
+		if ($concrete instanceof Closure) {
179
+			return $concrete($this);
180
+		}
181
+
182
+		$reflector = new ReflectionClass($concrete);
183
+
184
+		if (!$reflector->isInstantiable()) {
185
+			return $this->notInstantiable($concrete);
186
+		}
187
+
188
+		if (is_null(($constructor = $reflector->getConstructor()))) {
189
+			return new $concrete();
190
+		}
191
+
192
+		return $reflector->newInstanceArgs(
193
+			$this->resolveDependencies($constructor->getParameters())
194
+		);
195
+	}
196
+
197
+	/**
198
+	 * Resolve a class based dependency from the container.
199
+	 *
200
+	 * @return mixed
201
+	 * @throws BindingResolutionException
202
+	 */
203
+	protected function resolveClass(ReflectionParameter $parameter)
204
+	{
205
+		try {
206
+			return $this->make($this->getClass($parameter)->getName());
207
+		} catch (BindingResolutionException $e) {
208
+			if ($parameter->isOptional()) {
209
+				return $parameter->getDefaultValue();
210
+			}
211
+			throw $e;
212
+		}
213
+	}
214
+
215
+	/**
216
+	 * Resolve all of the dependencies from the ReflectionParameters.
217
+	 *
218
+	 * @return array
219
+	 */
220
+	protected function resolveDependencies(array $dependencies)
221
+	{
222
+		$results = [];
223
+
224
+		foreach ($dependencies as $dependency) {
225
+			// If the class is null, the dependency is a string or some other primitive type
226
+			$results[] = !is_null($class = $this->getClass($dependency))
227
+				? $this->resolveClass($dependency)
228
+				: null;
229
+		}
230
+
231
+		return $results;
232
+	}
233 233
 }
Please login to merge, or discard this patch.
Spacing   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
      */
38 38
     public static function getInstance()
39 39
     {
40
-        if (is_null(static::$instance)) {
40
+        if( is_null( static::$instance ) ) {
41 41
             static::$instance = new static();
42 42
         }
43 43
 
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
      *
53 53
      * @return mixed
54 54
      */
55
-    public function bind($alias, $concrete)
55
+    public function bind( $alias, $concrete )
56 56
     {
57 57
         $this->services[$alias] = $concrete;
58 58
     }
@@ -66,20 +66,20 @@  discard block
 block discarded – undo
66 66
      *
67 67
      * @return mixed
68 68
      */
69
-    public function make($abstract)
69
+    public function make( $abstract )
70 70
     {
71
-        $service = isset($this->services[$abstract])
71
+        $service = isset( $this->services[$abstract] )
72 72
             ? $this->services[$abstract]
73
-            : $this->addNamespace($abstract);
73
+            : $this->addNamespace( $abstract );
74 74
 
75
-        if (is_callable($service)) {
76
-            return call_user_func_array($service, [$this]);
75
+        if( is_callable( $service ) ) {
76
+            return call_user_func_array( $service, [$this] );
77 77
         }
78
-        if (is_object($service)) {
78
+        if( is_object( $service ) ) {
79 79
             return $service;
80 80
         }
81 81
 
82
-        return $this->resolve($service);
82
+        return $this->resolve( $service );
83 83
     }
84 84
 
85 85
     /**
@@ -90,9 +90,9 @@  discard block
 block discarded – undo
90 90
      *
91 91
      * @return void
92 92
      */
93
-    public function singleton($abstract, $concrete)
93
+    public function singleton( $abstract, $concrete )
94 94
     {
95
-        $this->bind($abstract, $this->make($concrete));
95
+        $this->bind( $abstract, $this->make( $concrete ) );
96 96
     }
97 97
 
98 98
     /**
@@ -102,9 +102,9 @@  discard block
 block discarded – undo
102 102
      *
103 103
      * @return mixed
104 104
      */
105
-    public function __get($item)
105
+    public function __get( $item )
106 106
     {
107
-        return isset($this->bucket[$item])
107
+        return isset( $this->bucket[$item] )
108 108
             ? $this->bucket[$item]
109 109
             : null;
110 110
     }
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
      *
118 118
      * @return void
119 119
      */
120
-    public function __set($item, $value)
120
+    public function __set( $item, $value )
121 121
     {
122 122
         $this->bucket[$item] = $value;
123 123
     }
@@ -129,9 +129,9 @@  discard block
 block discarded – undo
129 129
      *
130 130
      * @return string
131 131
      */
132
-    protected function addNamespace($abstract)
132
+    protected function addNamespace( $abstract )
133 133
     {
134
-        if (false === strpos($abstract, __NAMESPACE__) && !class_exists($abstract)) {
134
+        if( false === strpos( $abstract, __NAMESPACE__ ) && !class_exists( $abstract ) ) {
135 135
             $abstract = __NAMESPACE__."\\$abstract";
136 136
         }
137 137
 
@@ -142,9 +142,9 @@  discard block
 block discarded – undo
142 142
      * @param \ReflectionParameter $parameter
143 143
      * @return null|\ReflectionClass|\ReflectionNamedType|\ReflectionType
144 144
      */
145
-    protected function getClass($parameter)
145
+    protected function getClass( $parameter )
146 146
     {
147
-        if (version_compare(phpversion(), '8', '<')) {
147
+        if( version_compare( phpversion(), '8', '<' ) ) {
148 148
             return $parameter->getClass(); // @compat PHP < 8
149 149
         }
150 150
         return $parameter->getType();
@@ -158,11 +158,11 @@  discard block
 block discarded – undo
158 158
      * @return void
159 159
      * @throws BindingResolutionException
160 160
      */
161
-    protected function notInstantiable($concrete)
161
+    protected function notInstantiable( $concrete )
162 162
     {
163 163
         $message = "Target [$concrete] is not instantiable.";
164 164
 
165
-        throw new BindingResolutionException($message);
165
+        throw new BindingResolutionException( $message );
166 166
     }
167 167
 
168 168
     /**
@@ -173,24 +173,24 @@  discard block
 block discarded – undo
173 173
      * @return mixed
174 174
      * @throws BindingResolutionException
175 175
      */
176
-    protected function resolve($concrete)
176
+    protected function resolve( $concrete )
177 177
     {
178
-        if ($concrete instanceof Closure) {
179
-            return $concrete($this);
178
+        if( $concrete instanceof Closure ) {
179
+            return $concrete( $this );
180 180
         }
181 181
 
182
-        $reflector = new ReflectionClass($concrete);
182
+        $reflector = new ReflectionClass( $concrete );
183 183
 
184
-        if (!$reflector->isInstantiable()) {
185
-            return $this->notInstantiable($concrete);
184
+        if( !$reflector->isInstantiable() ) {
185
+            return $this->notInstantiable( $concrete );
186 186
         }
187 187
 
188
-        if (is_null(($constructor = $reflector->getConstructor()))) {
188
+        if( is_null( ( $constructor = $reflector->getConstructor() ) ) ) {
189 189
             return new $concrete();
190 190
         }
191 191
 
192 192
         return $reflector->newInstanceArgs(
193
-            $this->resolveDependencies($constructor->getParameters())
193
+            $this->resolveDependencies( $constructor->getParameters() )
194 194
         );
195 195
     }
196 196
 
@@ -200,12 +200,12 @@  discard block
 block discarded – undo
200 200
      * @return mixed
201 201
      * @throws BindingResolutionException
202 202
      */
203
-    protected function resolveClass(ReflectionParameter $parameter)
203
+    protected function resolveClass( ReflectionParameter $parameter )
204 204
     {
205 205
         try {
206
-            return $this->make($this->getClass($parameter)->getName());
207
-        } catch (BindingResolutionException $e) {
208
-            if ($parameter->isOptional()) {
206
+            return $this->make( $this->getClass( $parameter )->getName() );
207
+        } catch( BindingResolutionException $e ) {
208
+            if( $parameter->isOptional() ) {
209 209
                 return $parameter->getDefaultValue();
210 210
             }
211 211
             throw $e;
@@ -217,14 +217,14 @@  discard block
 block discarded – undo
217 217
      *
218 218
      * @return array
219 219
      */
220
-    protected function resolveDependencies(array $dependencies)
220
+    protected function resolveDependencies( array $dependencies )
221 221
     {
222 222
         $results = [];
223 223
 
224
-        foreach ($dependencies as $dependency) {
224
+        foreach( $dependencies as $dependency ) {
225 225
             // If the class is null, the dependency is a string or some other primitive type
226
-            $results[] = !is_null($class = $this->getClass($dependency))
227
-                ? $this->resolveClass($dependency)
226
+            $results[] = !is_null( $class = $this->getClass( $dependency ) )
227
+                ? $this->resolveClass( $dependency )
228 228
                 : null;
229 229
         }
230 230
 
Please login to merge, or discard this patch.
Braces   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -7,8 +7,7 @@  discard block
 block discarded – undo
7 7
 use ReflectionClass;
8 8
 use ReflectionParameter;
9 9
 
10
-abstract class Container
11
-{
10
+abstract class Container {
12 11
     /**
13 12
      * The current globally available container (if any).
14 13
      *
@@ -204,7 +203,8 @@  discard block
 block discarded – undo
204 203
     {
205 204
         try {
206 205
             return $this->make($this->getClass($parameter)->getName());
207
-        } catch (BindingResolutionException $e) {
206
+        }
207
+        catch (BindingResolutionException $e) {
208 208
             if ($parameter->isOptional()) {
209 209
                 return $parameter->getDefaultValue();
210 210
             }
Please login to merge, or discard this patch.
src/Application.php 3 patches
Indentation   +73 added lines, -73 removed lines patch added patch discarded remove patch
@@ -6,85 +6,85 @@
 block discarded – undo
6 6
 
7 7
 final class Application extends Container
8 8
 {
9
-    public $assets;
10
-    public $cssDir;
11
-    public $imgDir;
12
-    public $jsDir;
9
+	public $assets;
10
+	public $cssDir;
11
+	public $imgDir;
12
+	public $jsDir;
13 13
 
14
-    public function __construct()
15
-    {
16
-        $this->assets = sprintf('%s/assets/', dirname(__DIR__));
17
-        Facade::clearResolvedInstances();
18
-        Facade::setFacadeApplication($this);
19
-        $this->registerAliases();
20
-        $this->registerBindings();
21
-    }
14
+	public function __construct()
15
+	{
16
+		$this->assets = sprintf('%s/assets/', dirname(__DIR__));
17
+		Facade::clearResolvedInstances();
18
+		Facade::setFacadeApplication($this);
19
+		$this->registerAliases();
20
+		$this->registerBindings();
21
+	}
22 22
 
23
-    public function init()
24
-    {
25
-        $controller = $this->make(Controller::class);
23
+	public function init()
24
+	{
25
+		$controller = $this->make(Controller::class);
26 26
 
27
-        // Action hooks
28
-        add_action('after_setup_theme', [$controller, 'afterSetupTheme'], 20);
29
-        add_action('login_head', [$controller, 'loadAdminFavicon']);
30
-        add_action('admin_head', [$controller, 'loadAdminFavicon']);
31
-        add_action('login_head', [$controller, 'login']);
32
-        add_action('admin_enqueue_scripts', [$controller, 'registerAdminAssets']);
33
-        add_action('wp_enqueue_scripts', [$controller, 'registerAssets']);
34
-        add_action('customize_register', [$controller, 'registerCustomizer']);
35
-        add_action('customize_preview_init', [$controller, 'registerCustomizerAssets']);
36
-        add_action('widgets_init', [$controller, 'registerSidebars']);
27
+		// Action hooks
28
+		add_action('after_setup_theme', [$controller, 'afterSetupTheme'], 20);
29
+		add_action('login_head', [$controller, 'loadAdminFavicon']);
30
+		add_action('admin_head', [$controller, 'loadAdminFavicon']);
31
+		add_action('login_head', [$controller, 'login']);
32
+		add_action('admin_enqueue_scripts', [$controller, 'registerAdminAssets']);
33
+		add_action('wp_enqueue_scripts', [$controller, 'registerAssets']);
34
+		add_action('customize_register', [$controller, 'registerCustomizer']);
35
+		add_action('customize_preview_init', [$controller, 'registerCustomizerAssets']);
36
+		add_action('widgets_init', [$controller, 'registerSidebars']);
37 37
 
38
-        // Filter hooks
39
-        add_filter('body_class', [$controller, 'filterBodyClasses']);
40
-        add_filter('template_include', [$controller, 'filterTemplate']);
41
-        add_filter('login_headertext', [$controller, 'filterLoginTitle']);
42
-        add_filter('login_headerurl', [$controller, 'filterLoginUrl']);
38
+		// Filter hooks
39
+		add_filter('body_class', [$controller, 'filterBodyClasses']);
40
+		add_filter('template_include', [$controller, 'filterTemplate']);
41
+		add_filter('login_headertext', [$controller, 'filterLoginTitle']);
42
+		add_filter('login_headerurl', [$controller, 'filterLoginUrl']);
43 43
 
44
-        foreach ($this->getTemplateTypes() as $type) {
45
-            add_filter("{$type}_template_hierarchy", [$controller, 'filterTemplateHierarchy']);
46
-        }
47
-    }
44
+		foreach ($this->getTemplateTypes() as $type) {
45
+			add_filter("{$type}_template_hierarchy", [$controller, 'filterTemplateHierarchy']);
46
+		}
47
+	}
48 48
 
49
-    /**
50
-     * @return void
51
-     */
52
-    public function registerAliases()
53
-    {
54
-        $aliases = [
55
-            'Development' => Facades\Development::class,
56
-            'Log' => Facades\Log::class,
57
-            'Media' => Facades\Media::class,
58
-            'PostMeta' => Facades\PostMeta::class,
59
-            'Render' => Facades\Render::class,
60
-            'SiteMeta' => Facades\SiteMeta::class,
61
-            'Template' => Facades\Template::class,
62
-            'Theme' => Facades\Theme::class,
63
-            'Utility' => Facades\Utility::class,
64
-        ];
65
-        $aliases = apply_filters('castor/register/aliases', $aliases);
66
-        AliasLoader::getInstance($aliases)->register();
67
-    }
49
+	/**
50
+	 * @return void
51
+	 */
52
+	public function registerAliases()
53
+	{
54
+		$aliases = [
55
+			'Development' => Facades\Development::class,
56
+			'Log' => Facades\Log::class,
57
+			'Media' => Facades\Media::class,
58
+			'PostMeta' => Facades\PostMeta::class,
59
+			'Render' => Facades\Render::class,
60
+			'SiteMeta' => Facades\SiteMeta::class,
61
+			'Template' => Facades\Template::class,
62
+			'Theme' => Facades\Theme::class,
63
+			'Utility' => Facades\Utility::class,
64
+		];
65
+		$aliases = apply_filters('castor/register/aliases', $aliases);
66
+		AliasLoader::getInstance($aliases)->register();
67
+	}
68 68
 
69
-    /**
70
-     * @return void
71
-     */
72
-    public function registerBindings()
73
-    {
74
-        $this->bind(Helpers\Log::class, function () {
75
-            return new Helpers\Log(trailingslashit(get_stylesheet_directory()).'castor-debug.log');
76
-        });
77
-    }
69
+	/**
70
+	 * @return void
71
+	 */
72
+	public function registerBindings()
73
+	{
74
+		$this->bind(Helpers\Log::class, function () {
75
+			return new Helpers\Log(trailingslashit(get_stylesheet_directory()).'castor-debug.log');
76
+		});
77
+	}
78 78
 
79
-    /**
80
-     * @return array
81
-     */
82
-    protected function getTemplateTypes()
83
-    {
84
-        return [
85
-            '404', 'archive', 'attachment', 'author', 'category', 'date',
86
-            'embed', 'frontpage', 'home', 'index', 'page', 'paged',
87
-            'search', 'single', 'singular', 'tag', 'taxonomy',
88
-        ];
89
-    }
79
+	/**
80
+	 * @return array
81
+	 */
82
+	protected function getTemplateTypes()
83
+	{
84
+		return [
85
+			'404', 'archive', 'attachment', 'author', 'category', 'date',
86
+			'embed', 'frontpage', 'home', 'index', 'page', 'paged',
87
+			'search', 'single', 'singular', 'tag', 'taxonomy',
88
+		];
89
+	}
90 90
 }
Please login to merge, or discard this patch.
Spacing   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -13,36 +13,36 @@  discard block
 block discarded – undo
13 13
 
14 14
     public function __construct()
15 15
     {
16
-        $this->assets = sprintf('%s/assets/', dirname(__DIR__));
16
+        $this->assets = sprintf( '%s/assets/', dirname( __DIR__ ) );
17 17
         Facade::clearResolvedInstances();
18
-        Facade::setFacadeApplication($this);
18
+        Facade::setFacadeApplication( $this );
19 19
         $this->registerAliases();
20 20
         $this->registerBindings();
21 21
     }
22 22
 
23 23
     public function init()
24 24
     {
25
-        $controller = $this->make(Controller::class);
25
+        $controller = $this->make( Controller::class );
26 26
 
27 27
         // Action hooks
28
-        add_action('after_setup_theme', [$controller, 'afterSetupTheme'], 20);
29
-        add_action('login_head', [$controller, 'loadAdminFavicon']);
30
-        add_action('admin_head', [$controller, 'loadAdminFavicon']);
31
-        add_action('login_head', [$controller, 'login']);
32
-        add_action('admin_enqueue_scripts', [$controller, 'registerAdminAssets']);
33
-        add_action('wp_enqueue_scripts', [$controller, 'registerAssets']);
34
-        add_action('customize_register', [$controller, 'registerCustomizer']);
35
-        add_action('customize_preview_init', [$controller, 'registerCustomizerAssets']);
36
-        add_action('widgets_init', [$controller, 'registerSidebars']);
28
+        add_action( 'after_setup_theme', [$controller, 'afterSetupTheme'], 20 );
29
+        add_action( 'login_head', [$controller, 'loadAdminFavicon'] );
30
+        add_action( 'admin_head', [$controller, 'loadAdminFavicon'] );
31
+        add_action( 'login_head', [$controller, 'login'] );
32
+        add_action( 'admin_enqueue_scripts', [$controller, 'registerAdminAssets'] );
33
+        add_action( 'wp_enqueue_scripts', [$controller, 'registerAssets'] );
34
+        add_action( 'customize_register', [$controller, 'registerCustomizer'] );
35
+        add_action( 'customize_preview_init', [$controller, 'registerCustomizerAssets'] );
36
+        add_action( 'widgets_init', [$controller, 'registerSidebars'] );
37 37
 
38 38
         // Filter hooks
39
-        add_filter('body_class', [$controller, 'filterBodyClasses']);
40
-        add_filter('template_include', [$controller, 'filterTemplate']);
41
-        add_filter('login_headertext', [$controller, 'filterLoginTitle']);
42
-        add_filter('login_headerurl', [$controller, 'filterLoginUrl']);
39
+        add_filter( 'body_class', [$controller, 'filterBodyClasses'] );
40
+        add_filter( 'template_include', [$controller, 'filterTemplate'] );
41
+        add_filter( 'login_headertext', [$controller, 'filterLoginTitle'] );
42
+        add_filter( 'login_headerurl', [$controller, 'filterLoginUrl'] );
43 43
 
44
-        foreach ($this->getTemplateTypes() as $type) {
45
-            add_filter("{$type}_template_hierarchy", [$controller, 'filterTemplateHierarchy']);
44
+        foreach( $this->getTemplateTypes() as $type ) {
45
+            add_filter( "{$type}_template_hierarchy", [$controller, 'filterTemplateHierarchy'] );
46 46
         }
47 47
     }
48 48
 
@@ -62,8 +62,8 @@  discard block
 block discarded – undo
62 62
             'Theme' => Facades\Theme::class,
63 63
             'Utility' => Facades\Utility::class,
64 64
         ];
65
-        $aliases = apply_filters('castor/register/aliases', $aliases);
66
-        AliasLoader::getInstance($aliases)->register();
65
+        $aliases = apply_filters( 'castor/register/aliases', $aliases );
66
+        AliasLoader::getInstance( $aliases )->register();
67 67
     }
68 68
 
69 69
     /**
@@ -71,8 +71,8 @@  discard block
 block discarded – undo
71 71
      */
72 72
     public function registerBindings()
73 73
     {
74
-        $this->bind(Helpers\Log::class, function () {
75
-            return new Helpers\Log(trailingslashit(get_stylesheet_directory()).'castor-debug.log');
74
+        $this->bind( Helpers\Log::class, function() {
75
+            return new Helpers\Log( trailingslashit( get_stylesheet_directory() ).'castor-debug.log' );
76 76
         });
77 77
     }
78 78
 
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -4,8 +4,7 @@
 block discarded – undo
4 4
 
5 5
 use GeminiLabs\Castor\Controller;
6 6
 
7
-final class Application extends Container
8
-{
7
+final class Application extends Container {
9 8
     public $assets;
10 9
     public $cssDir;
11 10
     public $imgDir;
Please login to merge, or discard this patch.
src/Services/Email.php 3 patches
Indentation   +262 added lines, -262 removed lines patch added patch discarded remove patch
@@ -6,266 +6,266 @@
 block discarded – undo
6 6
 
7 7
 class Email
8 8
 {
9
-    /**
10
-     * @var Template
11
-     */
12
-    public $template;
13
-
14
-    /**
15
-     * @var array
16
-     */
17
-    protected $attachments;
18
-
19
-    /**
20
-     * @var array
21
-     */
22
-    protected $headers;
23
-
24
-    /**
25
-     * @var string
26
-     */
27
-    protected $message;
28
-
29
-    /**
30
-     * @var string
31
-     */
32
-    protected $subject;
33
-
34
-    /**
35
-     * @var string
36
-     */
37
-    protected $to;
38
-
39
-    public function __construct(Template $template)
40
-    {
41
-        $this->template = $template;
42
-    }
43
-
44
-    /**
45
-     * @return Email
46
-     */
47
-    public function compose(array $email)
48
-    {
49
-        $email = $this->normalize($email);
50
-
51
-        $this->attachments = $email['attachments'];
52
-        $this->headers = $this->buildHeaders($email);
53
-        $this->message = $this->buildHtmlMessage($email);
54
-        $this->subject = $email['subject'];
55
-        $this->to = $email['to'];
56
-
57
-        add_action('phpmailer_init', function ($phpmailer) {
58
-            if ('text/plain' === $phpmailer->ContentType || !empty($phpmailer->AltBody)) {
59
-                return;
60
-            }
61
-            $phpmailer->AltBody = $this->buildPlainTextMessage($phpmailer->Body);
62
-        });
63
-
64
-        return $this;
65
-    }
66
-
67
-    /**
68
-     * @param bool $plaintext
69
-     *
70
-     * @return string|null
71
-     */
72
-    public function read($plaintext = false)
73
-    {
74
-        return $plaintext
75
-            ? $this->buildPlainTextMessage($this->message)
76
-            : $this->message;
77
-    }
78
-
79
-    /**
80
-     * @return bool|null
81
-     */
82
-    public function send()
83
-    {
84
-        if (!$this->message || !$this->subject || !$this->to) {
85
-            return;
86
-        }
87
-
88
-        $sent = wp_mail(
89
-            $this->to,
90
-            $this->subject,
91
-            $this->message,
92
-            $this->headers,
93
-            $this->attachments
94
-        );
95
-
96
-        $this->reset();
97
-
98
-        return $sent;
99
-    }
100
-
101
-    /**
102
-     * @return array
103
-     */
104
-    protected function buildHeaders(array $email)
105
-    {
106
-        $allowed = [
107
-            'bcc',
108
-            'cc',
109
-            'from',
110
-            'reply-to',
111
-        ];
112
-
113
-        $headers = array_intersect_key($email, array_flip($allowed));
114
-        $headers = array_filter($headers);
115
-
116
-        foreach ($headers as $key => $value) {
117
-            unset($headers[$key]);
118
-            $headers[] = sprintf('%s: %s', $key, $value);
119
-        }
120
-
121
-        $headers[] = 'Content-Type: text/html';
122
-
123
-        return apply_filters('castor/email/headers', $headers, $this);
124
-    }
125
-
126
-    /**
127
-     * @return string
128
-     */
129
-    protected function buildHtmlMessage(array $email)
130
-    {
131
-        $body = $this->renderTemplate('index');
132
-        $message = !empty($email['template'])
133
-            ? $this->renderTemplate($email['template'], $email['template-tags'])
134
-            : $email['message'];
135
-
136
-        $message = $this->filterHtml($email['before'].$message.$email['after']);
137
-        $message = str_replace('{message}', $message, $body);
138
-
139
-        return apply_filters('castor/email/message', $message, 'html', $this);
140
-    }
141
-
142
-    /**
143
-     * @param string $message
144
-     *
145
-     * @return string
146
-     */
147
-    protected function buildPlainTextMessage($message)
148
-    {
149
-        return apply_filters('castor/email/message', $this->stripHtmlTags($message), 'text', $this);
150
-    }
151
-
152
-    /**
153
-     * @param string $message
154
-     *
155
-     * @return string
156
-     */
157
-    protected function filterHtml($message)
158
-    {
159
-        $message = strip_shortcodes($message);
160
-        $message = wptexturize($message);
161
-        $message = wpautop($message);
162
-        $message = str_replace(['&lt;&gt; ', ']]>'], ['', ']]&gt;'], $message);
163
-        $message = stripslashes($message);
164
-        return $message;
165
-    }
166
-
167
-    /**
168
-     * @return string
169
-     */
170
-    protected function getDefaultFrom()
171
-    {
172
-        return sprintf('%s <%s>',
173
-            wp_specialchars_decode((string) get_option('blogname'), ENT_QUOTES),
174
-            (string) get_option('admin_email')
175
-        );
176
-    }
177
-
178
-    /**
179
-     * @return array
180
-     */
181
-    protected function normalize($email)
182
-    {
183
-        $defaults = array_fill_keys([
184
-            'after', 'attachments', 'bcc', 'before', 'cc', 'from', 'message', 'reply-to', 'subject',
185
-            'template', 'template-tags', 'to',
186
-        ], '');
187
-        $defaults['from'] = $this->getDefaultFrom();
188
-
189
-        $email = shortcode_atts($defaults, $email);
190
-
191
-        foreach (['attachments', 'template-tags'] as $key) {
192
-            $email[$key] = array_filter((array) $email[$key]);
193
-        }
194
-        if (empty($email['reply-to'])) {
195
-            $email['reply-to'] = $email['from'];
196
-        }
197
-
198
-        return apply_filters('castor/email/compose', $email, $this);
199
-    }
200
-
201
-    /**
202
-     * Override by adding the custom template to "templates/castor/" in your theme.
203
-     *
204
-     * @param string $templatePath
205
-     *
206
-     * @return void|string
207
-     */
208
-    protected function renderTemplate($templatePath, array $args = [])
209
-    {
210
-        $file = $this->template->get('castor/email/'.$templatePath);
211
-
212
-        if (!file_exists($file)) {
213
-            $file = sprintf('%s/templates/email/%s.php', dirname(dirname(__DIR__)), $templatePath);
214
-        }
215
-        if (!file_exists($file)) {
216
-            return;
217
-        }
218
-
219
-        ob_start();
220
-        include $file;
221
-        $template = ob_get_clean();
222
-
223
-        return $this->renderTemplateString($template, $args);
224
-    }
225
-
226
-    /**
227
-     * @param string $template
228
-     *
229
-     * @return string
230
-     */
231
-    protected function renderTemplateString($template, array $args = [])
232
-    {
233
-        foreach ($args as $key => $value) {
234
-            $template = str_replace('{'.$key.'}', $value, $template);
235
-        }
236
-        return trim($template);
237
-    }
238
-
239
-    /**
240
-     * @return void
241
-     */
242
-    protected function reset()
243
-    {
244
-        $this->attachments = [];
245
-        $this->headers = [];
246
-        $this->message = null;
247
-        $this->subject = null;
248
-        $this->to = null;
249
-    }
250
-
251
-    /**
252
-     * - remove invisible elements
253
-     * - replace certain elements with a line-break
254
-     * - replace certain table elements with a space
255
-     * - add a placeholder for plain-text bullets to list elements
256
-     * - strip all remaining HTML tags.
257
-     * @return string
258
-     */
259
-    protected function stripHtmlTags($string)
260
-    {
261
-        $string = preg_replace('@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string);
262
-        $string = preg_replace('@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string);
263
-        $string = preg_replace('@</(td|th)@iu', ' $0', $string);
264
-        $string = preg_replace('@<(li)[^>]*?>@siu', '$0-o-^-o-', $string);
265
-        $string = wp_strip_all_tags($string);
266
-        $string = wp_specialchars_decode($string, ENT_QUOTES);
267
-        $string = preg_replace('/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string);
268
-        $string = str_replace('-o-^-o-', ' - ', $string);
269
-        return html_entity_decode($string, ENT_QUOTES, 'UTF-8');
270
-    }
9
+	/**
10
+	 * @var Template
11
+	 */
12
+	public $template;
13
+
14
+	/**
15
+	 * @var array
16
+	 */
17
+	protected $attachments;
18
+
19
+	/**
20
+	 * @var array
21
+	 */
22
+	protected $headers;
23
+
24
+	/**
25
+	 * @var string
26
+	 */
27
+	protected $message;
28
+
29
+	/**
30
+	 * @var string
31
+	 */
32
+	protected $subject;
33
+
34
+	/**
35
+	 * @var string
36
+	 */
37
+	protected $to;
38
+
39
+	public function __construct(Template $template)
40
+	{
41
+		$this->template = $template;
42
+	}
43
+
44
+	/**
45
+	 * @return Email
46
+	 */
47
+	public function compose(array $email)
48
+	{
49
+		$email = $this->normalize($email);
50
+
51
+		$this->attachments = $email['attachments'];
52
+		$this->headers = $this->buildHeaders($email);
53
+		$this->message = $this->buildHtmlMessage($email);
54
+		$this->subject = $email['subject'];
55
+		$this->to = $email['to'];
56
+
57
+		add_action('phpmailer_init', function ($phpmailer) {
58
+			if ('text/plain' === $phpmailer->ContentType || !empty($phpmailer->AltBody)) {
59
+				return;
60
+			}
61
+			$phpmailer->AltBody = $this->buildPlainTextMessage($phpmailer->Body);
62
+		});
63
+
64
+		return $this;
65
+	}
66
+
67
+	/**
68
+	 * @param bool $plaintext
69
+	 *
70
+	 * @return string|null
71
+	 */
72
+	public function read($plaintext = false)
73
+	{
74
+		return $plaintext
75
+			? $this->buildPlainTextMessage($this->message)
76
+			: $this->message;
77
+	}
78
+
79
+	/**
80
+	 * @return bool|null
81
+	 */
82
+	public function send()
83
+	{
84
+		if (!$this->message || !$this->subject || !$this->to) {
85
+			return;
86
+		}
87
+
88
+		$sent = wp_mail(
89
+			$this->to,
90
+			$this->subject,
91
+			$this->message,
92
+			$this->headers,
93
+			$this->attachments
94
+		);
95
+
96
+		$this->reset();
97
+
98
+		return $sent;
99
+	}
100
+
101
+	/**
102
+	 * @return array
103
+	 */
104
+	protected function buildHeaders(array $email)
105
+	{
106
+		$allowed = [
107
+			'bcc',
108
+			'cc',
109
+			'from',
110
+			'reply-to',
111
+		];
112
+
113
+		$headers = array_intersect_key($email, array_flip($allowed));
114
+		$headers = array_filter($headers);
115
+
116
+		foreach ($headers as $key => $value) {
117
+			unset($headers[$key]);
118
+			$headers[] = sprintf('%s: %s', $key, $value);
119
+		}
120
+
121
+		$headers[] = 'Content-Type: text/html';
122
+
123
+		return apply_filters('castor/email/headers', $headers, $this);
124
+	}
125
+
126
+	/**
127
+	 * @return string
128
+	 */
129
+	protected function buildHtmlMessage(array $email)
130
+	{
131
+		$body = $this->renderTemplate('index');
132
+		$message = !empty($email['template'])
133
+			? $this->renderTemplate($email['template'], $email['template-tags'])
134
+			: $email['message'];
135
+
136
+		$message = $this->filterHtml($email['before'].$message.$email['after']);
137
+		$message = str_replace('{message}', $message, $body);
138
+
139
+		return apply_filters('castor/email/message', $message, 'html', $this);
140
+	}
141
+
142
+	/**
143
+	 * @param string $message
144
+	 *
145
+	 * @return string
146
+	 */
147
+	protected function buildPlainTextMessage($message)
148
+	{
149
+		return apply_filters('castor/email/message', $this->stripHtmlTags($message), 'text', $this);
150
+	}
151
+
152
+	/**
153
+	 * @param string $message
154
+	 *
155
+	 * @return string
156
+	 */
157
+	protected function filterHtml($message)
158
+	{
159
+		$message = strip_shortcodes($message);
160
+		$message = wptexturize($message);
161
+		$message = wpautop($message);
162
+		$message = str_replace(['&lt;&gt; ', ']]>'], ['', ']]&gt;'], $message);
163
+		$message = stripslashes($message);
164
+		return $message;
165
+	}
166
+
167
+	/**
168
+	 * @return string
169
+	 */
170
+	protected function getDefaultFrom()
171
+	{
172
+		return sprintf('%s <%s>',
173
+			wp_specialchars_decode((string) get_option('blogname'), ENT_QUOTES),
174
+			(string) get_option('admin_email')
175
+		);
176
+	}
177
+
178
+	/**
179
+	 * @return array
180
+	 */
181
+	protected function normalize($email)
182
+	{
183
+		$defaults = array_fill_keys([
184
+			'after', 'attachments', 'bcc', 'before', 'cc', 'from', 'message', 'reply-to', 'subject',
185
+			'template', 'template-tags', 'to',
186
+		], '');
187
+		$defaults['from'] = $this->getDefaultFrom();
188
+
189
+		$email = shortcode_atts($defaults, $email);
190
+
191
+		foreach (['attachments', 'template-tags'] as $key) {
192
+			$email[$key] = array_filter((array) $email[$key]);
193
+		}
194
+		if (empty($email['reply-to'])) {
195
+			$email['reply-to'] = $email['from'];
196
+		}
197
+
198
+		return apply_filters('castor/email/compose', $email, $this);
199
+	}
200
+
201
+	/**
202
+	 * Override by adding the custom template to "templates/castor/" in your theme.
203
+	 *
204
+	 * @param string $templatePath
205
+	 *
206
+	 * @return void|string
207
+	 */
208
+	protected function renderTemplate($templatePath, array $args = [])
209
+	{
210
+		$file = $this->template->get('castor/email/'.$templatePath);
211
+
212
+		if (!file_exists($file)) {
213
+			$file = sprintf('%s/templates/email/%s.php', dirname(dirname(__DIR__)), $templatePath);
214
+		}
215
+		if (!file_exists($file)) {
216
+			return;
217
+		}
218
+
219
+		ob_start();
220
+		include $file;
221
+		$template = ob_get_clean();
222
+
223
+		return $this->renderTemplateString($template, $args);
224
+	}
225
+
226
+	/**
227
+	 * @param string $template
228
+	 *
229
+	 * @return string
230
+	 */
231
+	protected function renderTemplateString($template, array $args = [])
232
+	{
233
+		foreach ($args as $key => $value) {
234
+			$template = str_replace('{'.$key.'}', $value, $template);
235
+		}
236
+		return trim($template);
237
+	}
238
+
239
+	/**
240
+	 * @return void
241
+	 */
242
+	protected function reset()
243
+	{
244
+		$this->attachments = [];
245
+		$this->headers = [];
246
+		$this->message = null;
247
+		$this->subject = null;
248
+		$this->to = null;
249
+	}
250
+
251
+	/**
252
+	 * - remove invisible elements
253
+	 * - replace certain elements with a line-break
254
+	 * - replace certain table elements with a space
255
+	 * - add a placeholder for plain-text bullets to list elements
256
+	 * - strip all remaining HTML tags.
257
+	 * @return string
258
+	 */
259
+	protected function stripHtmlTags($string)
260
+	{
261
+		$string = preg_replace('@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string);
262
+		$string = preg_replace('@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string);
263
+		$string = preg_replace('@</(td|th)@iu', ' $0', $string);
264
+		$string = preg_replace('@<(li)[^>]*?>@siu', '$0-o-^-o-', $string);
265
+		$string = wp_strip_all_tags($string);
266
+		$string = wp_specialchars_decode($string, ENT_QUOTES);
267
+		$string = preg_replace('/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string);
268
+		$string = str_replace('-o-^-o-', ' - ', $string);
269
+		return html_entity_decode($string, ENT_QUOTES, 'UTF-8');
270
+	}
271 271
 }
Please login to merge, or discard this patch.
Spacing   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
      */
37 37
     protected $to;
38 38
 
39
-    public function __construct(Template $template)
39
+    public function __construct( Template $template )
40 40
     {
41 41
         $this->template = $template;
42 42
     }
@@ -44,21 +44,21 @@  discard block
 block discarded – undo
44 44
     /**
45 45
      * @return Email
46 46
      */
47
-    public function compose(array $email)
47
+    public function compose( array $email )
48 48
     {
49
-        $email = $this->normalize($email);
49
+        $email = $this->normalize( $email );
50 50
 
51 51
         $this->attachments = $email['attachments'];
52
-        $this->headers = $this->buildHeaders($email);
53
-        $this->message = $this->buildHtmlMessage($email);
52
+        $this->headers = $this->buildHeaders( $email );
53
+        $this->message = $this->buildHtmlMessage( $email );
54 54
         $this->subject = $email['subject'];
55 55
         $this->to = $email['to'];
56 56
 
57
-        add_action('phpmailer_init', function ($phpmailer) {
58
-            if ('text/plain' === $phpmailer->ContentType || !empty($phpmailer->AltBody)) {
57
+        add_action( 'phpmailer_init', function( $phpmailer ) {
58
+            if( 'text/plain' === $phpmailer->ContentType || !empty( $phpmailer->AltBody ) ) {
59 59
                 return;
60 60
             }
61
-            $phpmailer->AltBody = $this->buildPlainTextMessage($phpmailer->Body);
61
+            $phpmailer->AltBody = $this->buildPlainTextMessage( $phpmailer->Body );
62 62
         });
63 63
 
64 64
         return $this;
@@ -69,10 +69,10 @@  discard block
 block discarded – undo
69 69
      *
70 70
      * @return string|null
71 71
      */
72
-    public function read($plaintext = false)
72
+    public function read( $plaintext = false )
73 73
     {
74 74
         return $plaintext
75
-            ? $this->buildPlainTextMessage($this->message)
75
+            ? $this->buildPlainTextMessage( $this->message )
76 76
             : $this->message;
77 77
     }
78 78
 
@@ -81,7 +81,7 @@  discard block
 block discarded – undo
81 81
      */
82 82
     public function send()
83 83
     {
84
-        if (!$this->message || !$this->subject || !$this->to) {
84
+        if( !$this->message || !$this->subject || !$this->to ) {
85 85
             return;
86 86
         }
87 87
 
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
     /**
102 102
      * @return array
103 103
      */
104
-    protected function buildHeaders(array $email)
104
+    protected function buildHeaders( array $email )
105 105
     {
106 106
         $allowed = [
107 107
             'bcc',
@@ -110,33 +110,33 @@  discard block
 block discarded – undo
110 110
             'reply-to',
111 111
         ];
112 112
 
113
-        $headers = array_intersect_key($email, array_flip($allowed));
114
-        $headers = array_filter($headers);
113
+        $headers = array_intersect_key( $email, array_flip( $allowed ) );
114
+        $headers = array_filter( $headers );
115 115
 
116
-        foreach ($headers as $key => $value) {
117
-            unset($headers[$key]);
118
-            $headers[] = sprintf('%s: %s', $key, $value);
116
+        foreach( $headers as $key => $value ) {
117
+            unset( $headers[$key] );
118
+            $headers[] = sprintf( '%s: %s', $key, $value );
119 119
         }
120 120
 
121 121
         $headers[] = 'Content-Type: text/html';
122 122
 
123
-        return apply_filters('castor/email/headers', $headers, $this);
123
+        return apply_filters( 'castor/email/headers', $headers, $this );
124 124
     }
125 125
 
126 126
     /**
127 127
      * @return string
128 128
      */
129
-    protected function buildHtmlMessage(array $email)
129
+    protected function buildHtmlMessage( array $email )
130 130
     {
131
-        $body = $this->renderTemplate('index');
132
-        $message = !empty($email['template'])
133
-            ? $this->renderTemplate($email['template'], $email['template-tags'])
131
+        $body = $this->renderTemplate( 'index' );
132
+        $message = !empty( $email['template'] )
133
+            ? $this->renderTemplate( $email['template'], $email['template-tags'] )
134 134
             : $email['message'];
135 135
 
136
-        $message = $this->filterHtml($email['before'].$message.$email['after']);
137
-        $message = str_replace('{message}', $message, $body);
136
+        $message = $this->filterHtml( $email['before'].$message.$email['after'] );
137
+        $message = str_replace( '{message}', $message, $body );
138 138
 
139
-        return apply_filters('castor/email/message', $message, 'html', $this);
139
+        return apply_filters( 'castor/email/message', $message, 'html', $this );
140 140
     }
141 141
 
142 142
     /**
@@ -144,9 +144,9 @@  discard block
 block discarded – undo
144 144
      *
145 145
      * @return string
146 146
      */
147
-    protected function buildPlainTextMessage($message)
147
+    protected function buildPlainTextMessage( $message )
148 148
     {
149
-        return apply_filters('castor/email/message', $this->stripHtmlTags($message), 'text', $this);
149
+        return apply_filters( 'castor/email/message', $this->stripHtmlTags( $message ), 'text', $this );
150 150
     }
151 151
 
152 152
     /**
@@ -154,13 +154,13 @@  discard block
 block discarded – undo
154 154
      *
155 155
      * @return string
156 156
      */
157
-    protected function filterHtml($message)
157
+    protected function filterHtml( $message )
158 158
     {
159
-        $message = strip_shortcodes($message);
160
-        $message = wptexturize($message);
161
-        $message = wpautop($message);
162
-        $message = str_replace(['&lt;&gt; ', ']]>'], ['', ']]&gt;'], $message);
163
-        $message = stripslashes($message);
159
+        $message = strip_shortcodes( $message );
160
+        $message = wptexturize( $message );
161
+        $message = wpautop( $message );
162
+        $message = str_replace( ['&lt;&gt; ', ']]>'], ['', ']]&gt;'], $message );
163
+        $message = stripslashes( $message );
164 164
         return $message;
165 165
     }
166 166
 
@@ -169,33 +169,33 @@  discard block
 block discarded – undo
169 169
      */
170 170
     protected function getDefaultFrom()
171 171
     {
172
-        return sprintf('%s <%s>',
173
-            wp_specialchars_decode((string) get_option('blogname'), ENT_QUOTES),
174
-            (string) get_option('admin_email')
172
+        return sprintf( '%s <%s>',
173
+            wp_specialchars_decode( (string) get_option( 'blogname' ), ENT_QUOTES ),
174
+            (string) get_option( 'admin_email' )
175 175
         );
176 176
     }
177 177
 
178 178
     /**
179 179
      * @return array
180 180
      */
181
-    protected function normalize($email)
181
+    protected function normalize( $email )
182 182
     {
183
-        $defaults = array_fill_keys([
183
+        $defaults = array_fill_keys( [
184 184
             'after', 'attachments', 'bcc', 'before', 'cc', 'from', 'message', 'reply-to', 'subject',
185 185
             'template', 'template-tags', 'to',
186
-        ], '');
186
+        ], '' );
187 187
         $defaults['from'] = $this->getDefaultFrom();
188 188
 
189
-        $email = shortcode_atts($defaults, $email);
189
+        $email = shortcode_atts( $defaults, $email );
190 190
 
191
-        foreach (['attachments', 'template-tags'] as $key) {
192
-            $email[$key] = array_filter((array) $email[$key]);
191
+        foreach( ['attachments', 'template-tags'] as $key ) {
192
+            $email[$key] = array_filter( (array) $email[$key] );
193 193
         }
194
-        if (empty($email['reply-to'])) {
194
+        if( empty( $email['reply-to'] ) ) {
195 195
             $email['reply-to'] = $email['from'];
196 196
         }
197 197
 
198
-        return apply_filters('castor/email/compose', $email, $this);
198
+        return apply_filters( 'castor/email/compose', $email, $this );
199 199
     }
200 200
 
201 201
     /**
@@ -205,14 +205,14 @@  discard block
 block discarded – undo
205 205
      *
206 206
      * @return void|string
207 207
      */
208
-    protected function renderTemplate($templatePath, array $args = [])
208
+    protected function renderTemplate( $templatePath, array $args = [] )
209 209
     {
210
-        $file = $this->template->get('castor/email/'.$templatePath);
210
+        $file = $this->template->get( 'castor/email/'.$templatePath );
211 211
 
212
-        if (!file_exists($file)) {
213
-            $file = sprintf('%s/templates/email/%s.php', dirname(dirname(__DIR__)), $templatePath);
212
+        if( !file_exists( $file ) ) {
213
+            $file = sprintf( '%s/templates/email/%s.php', dirname( dirname( __DIR__ ) ), $templatePath );
214 214
         }
215
-        if (!file_exists($file)) {
215
+        if( !file_exists( $file ) ) {
216 216
             return;
217 217
         }
218 218
 
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
         include $file;
221 221
         $template = ob_get_clean();
222 222
 
223
-        return $this->renderTemplateString($template, $args);
223
+        return $this->renderTemplateString( $template, $args );
224 224
     }
225 225
 
226 226
     /**
@@ -228,12 +228,12 @@  discard block
 block discarded – undo
228 228
      *
229 229
      * @return string
230 230
      */
231
-    protected function renderTemplateString($template, array $args = [])
231
+    protected function renderTemplateString( $template, array $args = [] )
232 232
     {
233
-        foreach ($args as $key => $value) {
234
-            $template = str_replace('{'.$key.'}', $value, $template);
233
+        foreach( $args as $key => $value ) {
234
+            $template = str_replace( '{'.$key.'}', $value, $template );
235 235
         }
236
-        return trim($template);
236
+        return trim( $template );
237 237
     }
238 238
 
239 239
     /**
@@ -256,16 +256,16 @@  discard block
 block discarded – undo
256 256
      * - strip all remaining HTML tags.
257 257
      * @return string
258 258
      */
259
-    protected function stripHtmlTags($string)
259
+    protected function stripHtmlTags( $string )
260 260
     {
261
-        $string = preg_replace('@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string);
262
-        $string = preg_replace('@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string);
263
-        $string = preg_replace('@</(td|th)@iu', ' $0', $string);
264
-        $string = preg_replace('@<(li)[^>]*?>@siu', '$0-o-^-o-', $string);
265
-        $string = wp_strip_all_tags($string);
266
-        $string = wp_specialchars_decode($string, ENT_QUOTES);
267
-        $string = preg_replace('/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string);
268
-        $string = str_replace('-o-^-o-', ' - ', $string);
269
-        return html_entity_decode($string, ENT_QUOTES, 'UTF-8');
261
+        $string = preg_replace( '@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string );
262
+        $string = preg_replace( '@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string );
263
+        $string = preg_replace( '@</(td|th)@iu', ' $0', $string );
264
+        $string = preg_replace( '@<(li)[^>]*?>@siu', '$0-o-^-o-', $string );
265
+        $string = wp_strip_all_tags( $string );
266
+        $string = wp_specialchars_decode( $string, ENT_QUOTES );
267
+        $string = preg_replace( '/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string );
268
+        $string = str_replace( '-o-^-o-', ' - ', $string );
269
+        return html_entity_decode( $string, ENT_QUOTES, 'UTF-8' );
270 270
     }
271 271
 }
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -4,8 +4,7 @@
 block discarded – undo
4 4
 
5 5
 use GeminiLabs\Castor\Helpers\Template;
6 6
 
7
-class Email
8
-{
7
+class Email {
9 8
     /**
10 9
      * @var Template
11 10
      */
Please login to merge, or discard this patch.