Completed
Pull Request — master (#6)
by James
03:23
created
src/Assets/Register.php 2 patches
Indentation   +198 added lines, -198 removed lines patch added patch discarded remove patch
@@ -12,202 +12,202 @@
 block discarded – undo
12 12
  * @subpackage Register
13 13
  */
14 14
 class Register implements RegisterContract {
15
-	/**
16
-	 * Minification string for enqueued assets.
17
-	 *
18
-	 * @var string
19
-	 */
20
-	private $min = '';
21
-
22
-	/**
23
-	 * Url to the plugin directory.
24
-	 *
25
-	 * @var string
26
-	 */
27
-	protected $url;
28
-
29
-	/**
30
-	 * Script/plugin version.
31
-	 *
32
-	 * @var string
33
-	 */
34
-	protected $version;
35
-
36
-	/**
37
-	 * Array of script definition arrays.
38
-	 *
39
-	 * @var array
40
-	 */
41
-	private $scripts = array();
42
-
43
-	/**
44
-	 * Array of style definition arrays.
45
-	 *
46
-	 * @var array
47
-	 */
48
-	private $styles = array();
49
-
50
-	/**
51
-	 * Instantiates a new instance of the Register class.
52
-	 *
53
-	 * The URL param should be relative to the plugin directory. The URL
54
-	 * form should always end with a '/'. All asset location definitions
55
-	 * should not begin with a slash and should be relative to the plugin's
56
-	 * root directory. The URL provided by default from the Application
57
-	 * class is compatible.
58
-	 *
59
-	 * @param string $url
60
-	 * @param string $version
61
-	 */
62
-	public function __construct( $url, $version = null ) {
63
-		$this->url = $url;
64
-		$this->version = $version ? : null; // Empty string should remain null.
65
-	}
66
-
67
-	/**
68
-	 * {@inheritdoc}
69
-	 *
70
-	 * @param bool $debug
71
-	 */
72
-	public function set_debug( $debug ) {
73
-		if ( $debug ) {
74
-			$this->min = '.min';
75
-		} else {
76
-			$this->min = '';
77
-		}
78
-	}
79
-
80
-	/**
81
-	 * {@inheritdoc}
82
-	 *
83
-	 * @param array $script
84
-	 */
85
-	public function register_script( $script ) {
86
-		$this->scripts[] = $script;
87
-	}
88
-
89
-	/**
90
-	 * {@inheritdoc}
91
-	 *
92
-	 * @param array $style
93
-	 */
94
-	public function register_style( $style ) {
95
-		$this->styles[] = $style;
96
-	}
97
-
98
-	/**
99
-	 * {@inheritDoc}
100
-	 */
101
-	public function enqueue_web_scripts() {
102
-		foreach ( $this->scripts as $script ) {
103
-			if ( in_array( $script['type'], array( 'web', 'shared' ) ) ) {
104
-				$this->enqueue_script( $script );
105
-			}
106
-		}
107
-	}
108
-
109
-	/**
110
-	 * {@inheritDoc}
111
-	 */
112
-	public function enqueue_web_styles() {
113
-		foreach ( $this->styles as $style ) {
114
-			if ( in_array( $style['type'], array( 'web', 'shared' ) ) ) {
115
-				$this->enqueue_style( $style );
116
-			}
117
-		}
118
-	}
119
-
120
-	/**
121
-	 * {@inheritDoc}
122
-	 */
123
-	public function enqueue_admin_scripts() {
124
-		foreach ( $this->scripts as $script ) {
125
-			if ( in_array( $script['type'], array( 'admin', 'shared' ) ) ) {
126
-				$this->enqueue_script( $script );
127
-			}
128
-		}
129
-	}
130
-
131
-	/**
132
-	 * {@inheritDoc}
133
-	 */
134
-	public function enqueue_admin_styles() {
135
-		foreach ( $this->styles as $style ) {
136
-			if ( in_array( $style['type'], array( 'admin', 'shared' ) ) ) {
137
-				$this->enqueue_style( $style );
138
-			}
139
-		}
140
-	}
141
-
142
-	/**
143
-	 * {@inheritDoc}
144
-	 *
145
-	 * @return array[]
146
-	 */
147
-	public function action_hooks() {
148
-		return array(
149
-			array(
150
-				'hook'   => 'wp_enqueue_scripts',
151
-				'method' => 'enqueue_web_scripts',
152
-			),
153
-			array(
154
-				'hook'   => 'wp_enqueue_scripts',
155
-				'method' => 'enqueue_web_styles',
156
-			),
157
-			array(
158
-				'hook'   => 'admin_enqueue_scripts',
159
-				'method' => 'enqueue_admin_scripts',
160
-			),
161
-			array(
162
-				'hook'   => 'admin_enqueue_scripts',
163
-				'method' => 'enqueue_admin_styles',
164
-			),
165
-		);
166
-	}
167
-
168
-	/**
169
-	 * Enqueues an individual script if the style's condition is met.
170
-	 *
171
-	 * @param array $script
172
-	 */
173
-	protected function enqueue_script( $script ) {
174
-		if ( $script['condition']() ) {
175
-			wp_enqueue_script(
176
-				$script['handle'],
177
-				$this->url . $script['src'] . '.js',
178
-				isset( $script['deps'] ) ? $script['deps'] : array(),
179
-				$this->version,
180
-				isset( $script['footer'] ) ? $script['footer'] : false
181
-			);
182
-
183
-			if ( isset( $script['localize'] ) ) {
184
-				if ( is_callable( $script['localize'] ) ) { // @todo make all properties callables
185
-					$script['localize'] = call_user_func( $script['localize'] );
186
-				}
187
-
188
-				wp_localize_script(
189
-					$script['handle'],
190
-					$script['localize']['name'],
191
-					$script['localize']['data']
192
-				);
193
-			}
194
-		}
195
-	}
196
-
197
-	/**
198
-	 * Enqueues an individual stylesheet if the style's condition is met.
199
-	 *
200
-	 * @param array $style
201
-	 */
202
-	protected function enqueue_style( $style ) {
203
-		if ( $style['condition']() ) {
204
-			wp_enqueue_style(
205
-				$style['handle'],
206
-				$this->url . $style['src'] . '.css',
207
-				isset( $style['deps'] ) ? $style['deps'] : array(),
208
-				$this->version,
209
-				isset( $style['media'] ) ? $style['media'] : 'all'
210
-			);
211
-		}
212
-	}
15
+    /**
16
+     * Minification string for enqueued assets.
17
+     *
18
+     * @var string
19
+     */
20
+    private $min = '';
21
+
22
+    /**
23
+     * Url to the plugin directory.
24
+     *
25
+     * @var string
26
+     */
27
+    protected $url;
28
+
29
+    /**
30
+     * Script/plugin version.
31
+     *
32
+     * @var string
33
+     */
34
+    protected $version;
35
+
36
+    /**
37
+     * Array of script definition arrays.
38
+     *
39
+     * @var array
40
+     */
41
+    private $scripts = array();
42
+
43
+    /**
44
+     * Array of style definition arrays.
45
+     *
46
+     * @var array
47
+     */
48
+    private $styles = array();
49
+
50
+    /**
51
+     * Instantiates a new instance of the Register class.
52
+     *
53
+     * The URL param should be relative to the plugin directory. The URL
54
+     * form should always end with a '/'. All asset location definitions
55
+     * should not begin with a slash and should be relative to the plugin's
56
+     * root directory. The URL provided by default from the Application
57
+     * class is compatible.
58
+     *
59
+     * @param string $url
60
+     * @param string $version
61
+     */
62
+    public function __construct( $url, $version = null ) {
63
+        $this->url = $url;
64
+        $this->version = $version ? : null; // Empty string should remain null.
65
+    }
66
+
67
+    /**
68
+     * {@inheritdoc}
69
+     *
70
+     * @param bool $debug
71
+     */
72
+    public function set_debug( $debug ) {
73
+        if ( $debug ) {
74
+            $this->min = '.min';
75
+        } else {
76
+            $this->min = '';
77
+        }
78
+    }
79
+
80
+    /**
81
+     * {@inheritdoc}
82
+     *
83
+     * @param array $script
84
+     */
85
+    public function register_script( $script ) {
86
+        $this->scripts[] = $script;
87
+    }
88
+
89
+    /**
90
+     * {@inheritdoc}
91
+     *
92
+     * @param array $style
93
+     */
94
+    public function register_style( $style ) {
95
+        $this->styles[] = $style;
96
+    }
97
+
98
+    /**
99
+     * {@inheritDoc}
100
+     */
101
+    public function enqueue_web_scripts() {
102
+        foreach ( $this->scripts as $script ) {
103
+            if ( in_array( $script['type'], array( 'web', 'shared' ) ) ) {
104
+                $this->enqueue_script( $script );
105
+            }
106
+        }
107
+    }
108
+
109
+    /**
110
+     * {@inheritDoc}
111
+     */
112
+    public function enqueue_web_styles() {
113
+        foreach ( $this->styles as $style ) {
114
+            if ( in_array( $style['type'], array( 'web', 'shared' ) ) ) {
115
+                $this->enqueue_style( $style );
116
+            }
117
+        }
118
+    }
119
+
120
+    /**
121
+     * {@inheritDoc}
122
+     */
123
+    public function enqueue_admin_scripts() {
124
+        foreach ( $this->scripts as $script ) {
125
+            if ( in_array( $script['type'], array( 'admin', 'shared' ) ) ) {
126
+                $this->enqueue_script( $script );
127
+            }
128
+        }
129
+    }
130
+
131
+    /**
132
+     * {@inheritDoc}
133
+     */
134
+    public function enqueue_admin_styles() {
135
+        foreach ( $this->styles as $style ) {
136
+            if ( in_array( $style['type'], array( 'admin', 'shared' ) ) ) {
137
+                $this->enqueue_style( $style );
138
+            }
139
+        }
140
+    }
141
+
142
+    /**
143
+     * {@inheritDoc}
144
+     *
145
+     * @return array[]
146
+     */
147
+    public function action_hooks() {
148
+        return array(
149
+            array(
150
+                'hook'   => 'wp_enqueue_scripts',
151
+                'method' => 'enqueue_web_scripts',
152
+            ),
153
+            array(
154
+                'hook'   => 'wp_enqueue_scripts',
155
+                'method' => 'enqueue_web_styles',
156
+            ),
157
+            array(
158
+                'hook'   => 'admin_enqueue_scripts',
159
+                'method' => 'enqueue_admin_scripts',
160
+            ),
161
+            array(
162
+                'hook'   => 'admin_enqueue_scripts',
163
+                'method' => 'enqueue_admin_styles',
164
+            ),
165
+        );
166
+    }
167
+
168
+    /**
169
+     * Enqueues an individual script if the style's condition is met.
170
+     *
171
+     * @param array $script
172
+     */
173
+    protected function enqueue_script( $script ) {
174
+        if ( $script['condition']() ) {
175
+            wp_enqueue_script(
176
+                $script['handle'],
177
+                $this->url . $script['src'] . '.js',
178
+                isset( $script['deps'] ) ? $script['deps'] : array(),
179
+                $this->version,
180
+                isset( $script['footer'] ) ? $script['footer'] : false
181
+            );
182
+
183
+            if ( isset( $script['localize'] ) ) {
184
+                if ( is_callable( $script['localize'] ) ) { // @todo make all properties callables
185
+                    $script['localize'] = call_user_func( $script['localize'] );
186
+                }
187
+
188
+                wp_localize_script(
189
+                    $script['handle'],
190
+                    $script['localize']['name'],
191
+                    $script['localize']['data']
192
+                );
193
+            }
194
+        }
195
+    }
196
+
197
+    /**
198
+     * Enqueues an individual stylesheet if the style's condition is met.
199
+     *
200
+     * @param array $style
201
+     */
202
+    protected function enqueue_style( $style ) {
203
+        if ( $style['condition']() ) {
204
+            wp_enqueue_style(
205
+                $style['handle'],
206
+                $this->url . $style['src'] . '.css',
207
+                isset( $style['deps'] ) ? $style['deps'] : array(),
208
+                $this->version,
209
+                isset( $style['media'] ) ? $style['media'] : 'all'
210
+            );
211
+        }
212
+    }
213 213
 }
Please login to merge, or discard this patch.
Spacing   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -59,9 +59,9 @@  discard block
 block discarded – undo
59 59
 	 * @param string $url
60 60
 	 * @param string $version
61 61
 	 */
62
-	public function __construct( $url, $version = null ) {
62
+	public function __construct($url, $version = null) {
63 63
 		$this->url = $url;
64
-		$this->version = $version ? : null; // Empty string should remain null.
64
+		$this->version = $version ?: null; // Empty string should remain null.
65 65
 	}
66 66
 
67 67
 	/**
@@ -69,8 +69,8 @@  discard block
 block discarded – undo
69 69
 	 *
70 70
 	 * @param bool $debug
71 71
 	 */
72
-	public function set_debug( $debug ) {
73
-		if ( $debug ) {
72
+	public function set_debug($debug) {
73
+		if ($debug) {
74 74
 			$this->min = '.min';
75 75
 		} else {
76 76
 			$this->min = '';
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
 	 *
83 83
 	 * @param array $script
84 84
 	 */
85
-	public function register_script( $script ) {
85
+	public function register_script($script) {
86 86
 		$this->scripts[] = $script;
87 87
 	}
88 88
 
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
 	 *
92 92
 	 * @param array $style
93 93
 	 */
94
-	public function register_style( $style ) {
94
+	public function register_style($style) {
95 95
 		$this->styles[] = $style;
96 96
 	}
97 97
 
@@ -99,9 +99,9 @@  discard block
 block discarded – undo
99 99
 	 * {@inheritDoc}
100 100
 	 */
101 101
 	public function enqueue_web_scripts() {
102
-		foreach ( $this->scripts as $script ) {
103
-			if ( in_array( $script['type'], array( 'web', 'shared' ) ) ) {
104
-				$this->enqueue_script( $script );
102
+		foreach ($this->scripts as $script) {
103
+			if (in_array($script['type'], array('web', 'shared'))) {
104
+				$this->enqueue_script($script);
105 105
 			}
106 106
 		}
107 107
 	}
@@ -110,9 +110,9 @@  discard block
 block discarded – undo
110 110
 	 * {@inheritDoc}
111 111
 	 */
112 112
 	public function enqueue_web_styles() {
113
-		foreach ( $this->styles as $style ) {
114
-			if ( in_array( $style['type'], array( 'web', 'shared' ) ) ) {
115
-				$this->enqueue_style( $style );
113
+		foreach ($this->styles as $style) {
114
+			if (in_array($style['type'], array('web', 'shared'))) {
115
+				$this->enqueue_style($style);
116 116
 			}
117 117
 		}
118 118
 	}
@@ -121,9 +121,9 @@  discard block
 block discarded – undo
121 121
 	 * {@inheritDoc}
122 122
 	 */
123 123
 	public function enqueue_admin_scripts() {
124
-		foreach ( $this->scripts as $script ) {
125
-			if ( in_array( $script['type'], array( 'admin', 'shared' ) ) ) {
126
-				$this->enqueue_script( $script );
124
+		foreach ($this->scripts as $script) {
125
+			if (in_array($script['type'], array('admin', 'shared'))) {
126
+				$this->enqueue_script($script);
127 127
 			}
128 128
 		}
129 129
 	}
@@ -132,9 +132,9 @@  discard block
 block discarded – undo
132 132
 	 * {@inheritDoc}
133 133
 	 */
134 134
 	public function enqueue_admin_styles() {
135
-		foreach ( $this->styles as $style ) {
136
-			if ( in_array( $style['type'], array( 'admin', 'shared' ) ) ) {
137
-				$this->enqueue_style( $style );
135
+		foreach ($this->styles as $style) {
136
+			if (in_array($style['type'], array('admin', 'shared'))) {
137
+				$this->enqueue_style($style);
138 138
 			}
139 139
 		}
140 140
 	}
@@ -170,19 +170,19 @@  discard block
 block discarded – undo
170 170
 	 *
171 171
 	 * @param array $script
172 172
 	 */
173
-	protected function enqueue_script( $script ) {
174
-		if ( $script['condition']() ) {
173
+	protected function enqueue_script($script) {
174
+		if ($script['condition']()) {
175 175
 			wp_enqueue_script(
176 176
 				$script['handle'],
177
-				$this->url . $script['src'] . '.js',
178
-				isset( $script['deps'] ) ? $script['deps'] : array(),
177
+				$this->url.$script['src'].'.js',
178
+				isset($script['deps']) ? $script['deps'] : array(),
179 179
 				$this->version,
180
-				isset( $script['footer'] ) ? $script['footer'] : false
180
+				isset($script['footer']) ? $script['footer'] : false
181 181
 			);
182 182
 
183
-			if ( isset( $script['localize'] ) ) {
184
-				if ( is_callable( $script['localize'] ) ) { // @todo make all properties callables
185
-					$script['localize'] = call_user_func( $script['localize'] );
183
+			if (isset($script['localize'])) {
184
+				if (is_callable($script['localize'])) { // @todo make all properties callables
185
+					$script['localize'] = call_user_func($script['localize']);
186 186
 				}
187 187
 
188 188
 				wp_localize_script(
@@ -199,14 +199,14 @@  discard block
 block discarded – undo
199 199
 	 *
200 200
 	 * @param array $style
201 201
 	 */
202
-	protected function enqueue_style( $style ) {
203
-		if ( $style['condition']() ) {
202
+	protected function enqueue_style($style) {
203
+		if ($style['condition']()) {
204 204
 			wp_enqueue_style(
205 205
 				$style['handle'],
206
-				$this->url . $style['src'] . '.css',
207
-				isset( $style['deps'] ) ? $style['deps'] : array(),
206
+				$this->url.$style['src'].'.css',
207
+				isset($style['deps']) ? $style['deps'] : array(),
208 208
 				$this->version,
209
-				isset( $style['media'] ) ? $style['media'] : 'all'
209
+				isset($style['media']) ? $style['media'] : 'all'
210 210
 			);
211 211
 		}
212 212
 	}
Please login to merge, or discard this patch.
src/Assets/ServiceProvider.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -11,40 +11,40 @@
 block discarded – undo
11 11
  * @subpackage Assets
12 12
  */
13 13
 class ServiceProvider implements ServiceProviderContract {
14
-	/**
15
-	 * Container to register with.
16
-	 *
17
-	 * @var Container
18
-	 */
19
-	protected $container;
14
+    /**
15
+     * Container to register with.
16
+     *
17
+     * @var Container
18
+     */
19
+    protected $container;
20 20
 
21
-	/**
22
-	 * {@inheritDoc}
23
-	 *
24
-	 * @param Container $container
25
-	 */
26
-	public function register( Container $container ) {
27
-		$this->container = $container;
21
+    /**
22
+     * {@inheritDoc}
23
+     *
24
+     * @param Container $container
25
+     */
26
+    public function register( Container $container ) {
27
+        $this->container = $container;
28 28
 
29
-		$container->define(
30
-			array( 'assets' => 'Intraxia\Jaxion\Contract\Assets\Register' ),
31
-			$register = new Register( $container->fetch( 'url' ), $container->fetch( 'version' ) )
32
-		);
29
+        $container->define(
30
+            array( 'assets' => 'Intraxia\Jaxion\Contract\Assets\Register' ),
31
+            $register = new Register( $container->fetch( 'url' ), $container->fetch( 'version' ) )
32
+        );
33 33
 
34
-		$this->add_assets( $register );
35
-	}
34
+        $this->add_assets( $register );
35
+    }
36 36
 
37
-	/**
38
-	 * Registers the assets on the generated Register.
39
-	 *
40
-	 * This is a no-op by default by can be overwritten by the implementing developer
41
-	 * to provide a single, clean location to register their assets.
42
-	 *
43
-	 * @param Register $register
44
-	 *
45
-	 * @codeCoverageIgnore
46
-	 */
47
-	protected function add_assets( Register $register ) {
48
-		// no-op
49
-	}
37
+    /**
38
+     * Registers the assets on the generated Register.
39
+     *
40
+     * This is a no-op by default by can be overwritten by the implementing developer
41
+     * to provide a single, clean location to register their assets.
42
+     *
43
+     * @param Register $register
44
+     *
45
+     * @codeCoverageIgnore
46
+     */
47
+    protected function add_assets( Register $register ) {
48
+        // no-op
49
+    }
50 50
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -23,15 +23,15 @@  discard block
 block discarded – undo
23 23
 	 *
24 24
 	 * @param Container $container
25 25
 	 */
26
-	public function register( Container $container ) {
26
+	public function register(Container $container) {
27 27
 		$this->container = $container;
28 28
 
29 29
 		$container->define(
30
-			array( 'assets' => 'Intraxia\Jaxion\Contract\Assets\Register' ),
31
-			$register = new Register( $container->fetch( 'url' ), $container->fetch( 'version' ) )
30
+			array('assets' => 'Intraxia\Jaxion\Contract\Assets\Register'),
31
+			$register = new Register($container->fetch('url'), $container->fetch('version'))
32 32
 		);
33 33
 
34
-		$this->add_assets( $register );
34
+		$this->add_assets($register);
35 35
 	}
36 36
 
37 37
 	/**
@@ -44,7 +44,7 @@  discard block
 block discarded – undo
44 44
 	 *
45 45
 	 * @codeCoverageIgnore
46 46
 	 */
47
-	protected function add_assets( Register $register ) {
47
+	protected function add_assets(Register $register) {
48 48
 		// no-op
49 49
 	}
50 50
 }
Please login to merge, or discard this patch.
src/Core/Loader.php 2 patches
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -15,109 +15,109 @@
 block discarded – undo
15 15
  * @subpackage Core
16 16
  */
17 17
 class Loader implements LoaderContract {
18
-	/**
19
-	 * Array of action hooks to attach.
20
-	 *
21
-	 * @var array[]
22
-	 */
23
-	protected $actions = array();
18
+    /**
19
+     * Array of action hooks to attach.
20
+     *
21
+     * @var array[]
22
+     */
23
+    protected $actions = array();
24 24
 
25
-	/**
26
-	 * Array of filter hooks to attach.
27
-	 *
28
-	 * @var array[]
29
-	 */
30
-	protected $filters = array();
25
+    /**
26
+     * Array of filter hooks to attach.
27
+     *
28
+     * @var array[]
29
+     */
30
+    protected $filters = array();
31 31
 
32
-	/**
33
-	 * {@inheritDoc}
34
-	 */
35
-	public function run() {
36
-		foreach ( $this->actions as $action ) {
37
-			add_action(
38
-				$action['hook'],
39
-				array( $action['service'], $action['method'] ),
40
-				$action['priority'],
41
-				$action['args']
42
-			);
43
-		}
32
+    /**
33
+     * {@inheritDoc}
34
+     */
35
+    public function run() {
36
+        foreach ( $this->actions as $action ) {
37
+            add_action(
38
+                $action['hook'],
39
+                array( $action['service'], $action['method'] ),
40
+                $action['priority'],
41
+                $action['args']
42
+            );
43
+        }
44 44
 
45
-		foreach ( $this->filters as $filter ) {
46
-			add_filter(
47
-				$filter['hook'],
48
-				array( $filter['service'], $filter['method'] ),
49
-				$filter['priority'],
50
-				$filter['args']
51
-			);
52
-		}
53
-	}
45
+        foreach ( $this->filters as $filter ) {
46
+            add_filter(
47
+                $filter['hook'],
48
+                array( $filter['service'], $filter['method'] ),
49
+                $filter['priority'],
50
+                $filter['args']
51
+            );
52
+        }
53
+    }
54 54
 
55
-	/**
56
-	 * {@inheritDoc}
57
-	 *
58
-	 * @param HasActions $service
59
-	 */
60
-	public function register_actions( HasActions $service ) {
61
-		foreach ( $service->action_hooks() as $action ) {
62
-			$this->actions = $this->add(
63
-				$this->actions,
64
-				$action['hook'],
65
-				$service,
66
-				$action['method'],
67
-				isset( $action['priority'] ) ? $action['priority'] : 10,
68
-				isset( $action['args'] ) ? $action['args'] : 1
69
-			);
70
-		}
71
-	}
55
+    /**
56
+     * {@inheritDoc}
57
+     *
58
+     * @param HasActions $service
59
+     */
60
+    public function register_actions( HasActions $service ) {
61
+        foreach ( $service->action_hooks() as $action ) {
62
+            $this->actions = $this->add(
63
+                $this->actions,
64
+                $action['hook'],
65
+                $service,
66
+                $action['method'],
67
+                isset( $action['priority'] ) ? $action['priority'] : 10,
68
+                isset( $action['args'] ) ? $action['args'] : 1
69
+            );
70
+        }
71
+    }
72 72
 
73
-	/**
74
-	 * {@inheritDoc}
75
-	 *
76
-	 * @param HasFilters $service
77
-	 */
78
-	public function register_filters( HasFilters $service ) {
79
-		foreach ( $service->filter_hooks() as $filter ) {
80
-			$this->filters = $this->add(
81
-				$this->filters,
82
-				$filter['hook'],
83
-				$service,
84
-				$filter['method'],
85
-				isset( $filter['priority'] ) ? $filter['priority'] : 10,
86
-				isset( $filter['args'] ) ? $filter['args'] : 1
87
-			);
88
-		}
89
-	}
73
+    /**
74
+     * {@inheritDoc}
75
+     *
76
+     * @param HasFilters $service
77
+     */
78
+    public function register_filters( HasFilters $service ) {
79
+        foreach ( $service->filter_hooks() as $filter ) {
80
+            $this->filters = $this->add(
81
+                $this->filters,
82
+                $filter['hook'],
83
+                $service,
84
+                $filter['method'],
85
+                isset( $filter['priority'] ) ? $filter['priority'] : 10,
86
+                isset( $filter['args'] ) ? $filter['args'] : 1
87
+            );
88
+        }
89
+    }
90 90
 
91
-	/**
92
-	 * {@inheritDoc}
93
-	 *
94
-	 * @param HasShortcode $service
95
-	 */
96
-	public function register_shortcode( HasShortcode $service ) {
97
-		add_shortcode( $service->shortcode_name(), array( $service, 'do_shortcode' ) );
98
-	}
91
+    /**
92
+     * {@inheritDoc}
93
+     *
94
+     * @param HasShortcode $service
95
+     */
96
+    public function register_shortcode( HasShortcode $service ) {
97
+        add_shortcode( $service->shortcode_name(), array( $service, 'do_shortcode' ) );
98
+    }
99 99
 
100
-	/**
101
-	 * Utility to register the actions and hooks into a single collection.
102
-	 *
103
-	 * @param array  $hooks
104
-	 * @param string $hook
105
-	 * @param object $service
106
-	 * @param string $method
107
-	 * @param int    $priority
108
-	 * @param int    $accepted_args
109
-	 *
110
-	 * @return array
111
-	 */
112
-	protected function add( $hooks, $hook, $service, $method, $priority, $accepted_args ) {
113
-		$hooks[] = array(
114
-			'hook'     => $hook,
115
-			'service'  => $service,
116
-			'method'   => $method,
117
-			'priority' => $priority,
118
-			'args'     => $accepted_args,
119
-		);
100
+    /**
101
+     * Utility to register the actions and hooks into a single collection.
102
+     *
103
+     * @param array  $hooks
104
+     * @param string $hook
105
+     * @param object $service
106
+     * @param string $method
107
+     * @param int    $priority
108
+     * @param int    $accepted_args
109
+     *
110
+     * @return array
111
+     */
112
+    protected function add( $hooks, $hook, $service, $method, $priority, $accepted_args ) {
113
+        $hooks[] = array(
114
+            'hook'     => $hook,
115
+            'service'  => $service,
116
+            'method'   => $method,
117
+            'priority' => $priority,
118
+            'args'     => $accepted_args,
119
+        );
120 120
 
121
-		return $hooks;
122
-	}
121
+        return $hooks;
122
+    }
123 123
 }
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -33,19 +33,19 @@  discard block
 block discarded – undo
33 33
 	 * {@inheritDoc}
34 34
 	 */
35 35
 	public function run() {
36
-		foreach ( $this->actions as $action ) {
36
+		foreach ($this->actions as $action) {
37 37
 			add_action(
38 38
 				$action['hook'],
39
-				array( $action['service'], $action['method'] ),
39
+				array($action['service'], $action['method']),
40 40
 				$action['priority'],
41 41
 				$action['args']
42 42
 			);
43 43
 		}
44 44
 
45
-		foreach ( $this->filters as $filter ) {
45
+		foreach ($this->filters as $filter) {
46 46
 			add_filter(
47 47
 				$filter['hook'],
48
-				array( $filter['service'], $filter['method'] ),
48
+				array($filter['service'], $filter['method']),
49 49
 				$filter['priority'],
50 50
 				$filter['args']
51 51
 			);
@@ -57,15 +57,15 @@  discard block
 block discarded – undo
57 57
 	 *
58 58
 	 * @param HasActions $service
59 59
 	 */
60
-	public function register_actions( HasActions $service ) {
61
-		foreach ( $service->action_hooks() as $action ) {
60
+	public function register_actions(HasActions $service) {
61
+		foreach ($service->action_hooks() as $action) {
62 62
 			$this->actions = $this->add(
63 63
 				$this->actions,
64 64
 				$action['hook'],
65 65
 				$service,
66 66
 				$action['method'],
67
-				isset( $action['priority'] ) ? $action['priority'] : 10,
68
-				isset( $action['args'] ) ? $action['args'] : 1
67
+				isset($action['priority']) ? $action['priority'] : 10,
68
+				isset($action['args']) ? $action['args'] : 1
69 69
 			);
70 70
 		}
71 71
 	}
@@ -75,15 +75,15 @@  discard block
 block discarded – undo
75 75
 	 *
76 76
 	 * @param HasFilters $service
77 77
 	 */
78
-	public function register_filters( HasFilters $service ) {
79
-		foreach ( $service->filter_hooks() as $filter ) {
78
+	public function register_filters(HasFilters $service) {
79
+		foreach ($service->filter_hooks() as $filter) {
80 80
 			$this->filters = $this->add(
81 81
 				$this->filters,
82 82
 				$filter['hook'],
83 83
 				$service,
84 84
 				$filter['method'],
85
-				isset( $filter['priority'] ) ? $filter['priority'] : 10,
86
-				isset( $filter['args'] ) ? $filter['args'] : 1
85
+				isset($filter['priority']) ? $filter['priority'] : 10,
86
+				isset($filter['args']) ? $filter['args'] : 1
87 87
 			);
88 88
 		}
89 89
 	}
@@ -93,8 +93,8 @@  discard block
 block discarded – undo
93 93
 	 *
94 94
 	 * @param HasShortcode $service
95 95
 	 */
96
-	public function register_shortcode( HasShortcode $service ) {
97
-		add_shortcode( $service->shortcode_name(), array( $service, 'do_shortcode' ) );
96
+	public function register_shortcode(HasShortcode $service) {
97
+		add_shortcode($service->shortcode_name(), array($service, 'do_shortcode'));
98 98
 	}
99 99
 
100 100
 	/**
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
 	 *
110 110
 	 * @return array
111 111
 	 */
112
-	protected function add( $hooks, $hook, $service, $method, $priority, $accepted_args ) {
112
+	protected function add($hooks, $hook, $service, $method, $priority, $accepted_args) {
113 113
 		$hooks[] = array(
114 114
 			'hook'     => $hook,
115 115
 			'service'  => $service,
Please login to merge, or discard this patch.
src/Core/Container.php 2 patches
Indentation   +318 added lines, -318 removed lines patch added patch discarded remove patch
@@ -13,322 +13,322 @@
 block discarded – undo
13 13
  * @subpackage Core
14 14
  */
15 15
 class Container implements ContainerContract {
16
-	/**
17
-	 * ServiceProvider names to register with the container.
18
-	 *
19
-	 * Can be overwritten to include predefined providers.
20
-	 *
21
-	 * @var string[]
22
-	 */
23
-	protected $providers = array();
24
-
25
-	/**
26
-	 * Registered definitions.
27
-	 *
28
-	 * @var mixed[]
29
-	 */
30
-	private $definitions = array();
31
-
32
-	/**
33
-	 * Aliases to share between fetches.
34
-	 *
35
-	 * @var <string, true>[]
36
-	 */
37
-	private $shared = array();
38
-
39
-	/**
40
-	 * Aliases of all the registered services.
41
-	 *
42
-	 * @var <string, true>[]
43
-	 */
44
-	private $aliases = array();
45
-
46
-	/**
47
-	 * Array of classes registered on the container.
48
-	 *
49
-	 * @var <string, true>[]
50
-	 */
51
-	private $classes = array();
52
-
53
-	/**
54
-	 * Current position in the loop.
55
-	 *
56
-	 * @var int
57
-	 */
58
-	private $position;
59
-
60
-	/**
61
-	 * 0-indexed array of aliases for looping.
62
-	 *
63
-	 * @var string[]
64
-	 */
65
-	private $keys = array();
66
-
67
-	/**
68
-	 * Create a new container with the given providers.
69
-	 *
70
-	 * Providers can be instances or the class of the provider as a string.
71
-	 *
72
-	 * @param ServiceProvider[]|string[] $providers
73
-	 */
74
-	public function __construct( array $providers = array() ) {
75
-		// array_unique ensures we only register each provider once.
76
-		$providers = array_unique( array_merge( $this->providers, $providers ) );
77
-
78
-		foreach ( $providers as $provider ) {
79
-			if ( is_string( $provider ) && class_exists( $provider ) ) {
80
-				$provider = new $provider;
81
-			}
82
-
83
-			if ( $provider instanceof ServiceProvider ) {
84
-				$this->register( $provider );
85
-			}
86
-		}
87
-	}
88
-
89
-
90
-	/**
91
-	 * {@inheritdoc}
92
-	 *
93
-	 * @param string|array $alias
94
-	 * @param mixed        $definition
95
-	 *
96
-	 * @throws DefinedAliasException
97
-	 *
98
-	 * @return $this
99
-	 */
100
-	public function define( $alias, $definition ) {
101
-		if ( is_array( $alias ) ) {
102
-			$class = current( $alias );
103
-			$alias = key( $alias );
104
-		}
105
-
106
-		if ( isset( $this->aliases[ $alias ] ) ) {
107
-			throw new DefinedAliasException( $alias );
108
-		}
109
-
110
-		$this->aliases[ $alias ]     = true;
111
-		$this->definitions[ $alias ] = $definition;
112
-
113
-		// Closures are treated as factories unless
114
-		// defined via Container::share.
115
-		if ( ! $definition instanceof \Closure ) {
116
-			$this->shared[ $alias ] = true;
117
-		}
118
-
119
-		if ( isset( $class ) ) {
120
-			$this->classes[ $class ] = $alias;
121
-		}
122
-
123
-		return $this;
124
-	}
125
-
126
-	/**
127
-	 * {@inheritdoc}
128
-	 *
129
-	 * @param string|array $alias
130
-	 * @param mixed        $definition
131
-	 *
132
-	 * @throws DefinedAliasException
133
-	 *
134
-	 * @return $this
135
-	 */
136
-	public function share( $alias, $definition ) {
137
-		$this->define( $alias, $definition );
138
-
139
-		if ( is_array( $alias ) ) {
140
-			$alias = key( $alias );
141
-		}
142
-
143
-		$this->shared[ $alias ] = true;
144
-
145
-		return $this;
146
-	}
147
-
148
-	/**
149
-	 * {@inheritdoc}
150
-	 *
151
-	 * @param string $alias
152
-	 *
153
-	 * @throws UndefinedAliasException
154
-	 *
155
-	 * @return mixed
156
-	 */
157
-	public function fetch( $alias ) {
158
-		if ( isset( $this->classes[ $alias ] ) ) {
159
-			// If the alias is a class name,
160
-			// then retrieve its linked alias.
161
-			// This is only registered when
162
-			// registering using an array.
163
-			$alias = $this->classes[ $alias ];
164
-		}
165
-
166
-		if ( ! isset( $this->aliases[ $alias ] ) ) {
167
-			throw new UndefinedAliasException( $alias );
168
-		}
169
-
170
-		$value = $this->definitions[ $alias ];
171
-
172
-		// If the shared value is a closure,
173
-		// execute it and assign the result
174
-		// in place of the closure.
175
-		if ( $value instanceof \Closure ) {
176
-			$factory = $value;
177
-			$value   = $factory( $this );
178
-		}
179
-
180
-		// If the value is shared, save the shared value.
181
-		if ( isset( $this->shared[ $alias ] ) ) {
182
-			$this->definitions[ $alias ] = $value;
183
-		}
184
-
185
-		// Return the fetched value.
186
-		return $value;
187
-	}
188
-
189
-	/**
190
-	 * {@inheritdoc}
191
-	 *
192
-	 * @param  string $alias
193
-	 *
194
-	 * @return bool
195
-	 */
196
-	public function has( $alias ) {
197
-		return isset( $this->aliases[ $alias ] );
198
-	}
199
-
200
-	/**
201
-	 * {@inheritDoc}
202
-	 *
203
-	 * @param string $alias
204
-	 *
205
-	 * @return $this
206
-	 */
207
-	public function remove( $alias ) {
208
-		if ( isset( $this->aliases[ $alias ] ) ) {
209
-			/**
210
-			 * If there's no reference in the aliases array,
211
-			 * the service won't be found on fetching and
212
-			 * can be overwritten on setting.
213
-			 *
214
-			 * Pros: Quick setting/unsetting, faster
215
-			 * performance on those operations when doing
216
-			 * a lot of these.
217
-			 *
218
-			 * Cons: Objects and values set in the container
219
-			 * can't get garbage collected.
220
-			 *
221
-			 * If this is a problem, this may need to be revisited.
222
-			 */
223
-			unset( $this->aliases[ $alias ] );
224
-		}
225
-
226
-		return $this;
227
-	}
228
-
229
-	/**
230
-	 * {@inheritDoc}
231
-	 *
232
-	 * @param ServiceProvider $provider
233
-	 *
234
-	 * @return $this
235
-	 */
236
-	public function register( ServiceProvider $provider ) {
237
-		// @todo make sure provider is only registered once
238
-		$provider->register( $this );
239
-
240
-		return $this;
241
-	}
242
-
243
-	/**
244
-	 * Set a value into the container.
245
-	 *
246
-	 * @param  string $id
247
-	 * @param  mixed  $value
248
-	 *
249
-	 * @see    define
250
-	 */
251
-	public function offsetSet( $id, $value ) {
252
-		$this->define( $id, $value );
253
-	}
254
-
255
-	/**
256
-	 * Get an value from the container.
257
-	 *
258
-	 * @param  string $id
259
-	 *
260
-	 * @return object
261
-	 * @throws UndefinedAliasException
262
-	 *
263
-	 * @see    fetch
264
-	 */
265
-	public function offsetGet( $id ) {
266
-		return $this->fetch( $id );
267
-	}
268
-
269
-	/**
270
-	 * Checks if a key is set on the container.
271
-	 *
272
-	 * @param  string $id
273
-	 *
274
-	 * @return bool
275
-	 *
276
-	 * @see    has
277
-	 */
278
-	public function offsetExists( $id ) {
279
-		return $this->has( $id );
280
-	}
281
-
282
-	/**
283
-	 * Remove a key from the container.
284
-	 *
285
-	 * @param string $id
286
-	 *
287
-	 * @see   remove
288
-	 */
289
-	public function offsetUnset( $id ) {
290
-		$this->remove( $id );
291
-	}
292
-
293
-	/**
294
-	 * Sets the object properties to prepare for the loop.
295
-	 */
296
-	public function rewind() {
297
-		$this->position = 0;
298
-		$this->keys     = array_keys( $this->aliases );
299
-	}
300
-
301
-	/**
302
-	 * Retrieves the service object for the current step in the loop.
303
-	 *
304
-	 * @return object
305
-	 */
306
-	public function current() {
307
-		return $this->fetch( $this->keys[ $this->position ] );
308
-	}
309
-
310
-	/**
311
-	 * Retrieves the key for the current step in the loop.
312
-	 *
313
-	 * @return string
314
-	 */
315
-	public function key() {
316
-		return $this->keys[ $this->position ];
317
-	}
318
-
319
-	/**
320
-	 * Increments to the next step in the loop.
321
-	 */
322
-	public function next() {
323
-		$this->position ++;
324
-	}
325
-
326
-	/**
327
-	 * Checks if the next step in the loop in valid.
328
-	 *
329
-	 * @return bool
330
-	 */
331
-	public function valid() {
332
-		return isset( $this->keys[ $this->position ] );
333
-	}
16
+    /**
17
+     * ServiceProvider names to register with the container.
18
+     *
19
+     * Can be overwritten to include predefined providers.
20
+     *
21
+     * @var string[]
22
+     */
23
+    protected $providers = array();
24
+
25
+    /**
26
+     * Registered definitions.
27
+     *
28
+     * @var mixed[]
29
+     */
30
+    private $definitions = array();
31
+
32
+    /**
33
+     * Aliases to share between fetches.
34
+     *
35
+     * @var <string, true>[]
36
+     */
37
+    private $shared = array();
38
+
39
+    /**
40
+     * Aliases of all the registered services.
41
+     *
42
+     * @var <string, true>[]
43
+     */
44
+    private $aliases = array();
45
+
46
+    /**
47
+     * Array of classes registered on the container.
48
+     *
49
+     * @var <string, true>[]
50
+     */
51
+    private $classes = array();
52
+
53
+    /**
54
+     * Current position in the loop.
55
+     *
56
+     * @var int
57
+     */
58
+    private $position;
59
+
60
+    /**
61
+     * 0-indexed array of aliases for looping.
62
+     *
63
+     * @var string[]
64
+     */
65
+    private $keys = array();
66
+
67
+    /**
68
+     * Create a new container with the given providers.
69
+     *
70
+     * Providers can be instances or the class of the provider as a string.
71
+     *
72
+     * @param ServiceProvider[]|string[] $providers
73
+     */
74
+    public function __construct( array $providers = array() ) {
75
+        // array_unique ensures we only register each provider once.
76
+        $providers = array_unique( array_merge( $this->providers, $providers ) );
77
+
78
+        foreach ( $providers as $provider ) {
79
+            if ( is_string( $provider ) && class_exists( $provider ) ) {
80
+                $provider = new $provider;
81
+            }
82
+
83
+            if ( $provider instanceof ServiceProvider ) {
84
+                $this->register( $provider );
85
+            }
86
+        }
87
+    }
88
+
89
+
90
+    /**
91
+     * {@inheritdoc}
92
+     *
93
+     * @param string|array $alias
94
+     * @param mixed        $definition
95
+     *
96
+     * @throws DefinedAliasException
97
+     *
98
+     * @return $this
99
+     */
100
+    public function define( $alias, $definition ) {
101
+        if ( is_array( $alias ) ) {
102
+            $class = current( $alias );
103
+            $alias = key( $alias );
104
+        }
105
+
106
+        if ( isset( $this->aliases[ $alias ] ) ) {
107
+            throw new DefinedAliasException( $alias );
108
+        }
109
+
110
+        $this->aliases[ $alias ]     = true;
111
+        $this->definitions[ $alias ] = $definition;
112
+
113
+        // Closures are treated as factories unless
114
+        // defined via Container::share.
115
+        if ( ! $definition instanceof \Closure ) {
116
+            $this->shared[ $alias ] = true;
117
+        }
118
+
119
+        if ( isset( $class ) ) {
120
+            $this->classes[ $class ] = $alias;
121
+        }
122
+
123
+        return $this;
124
+    }
125
+
126
+    /**
127
+     * {@inheritdoc}
128
+     *
129
+     * @param string|array $alias
130
+     * @param mixed        $definition
131
+     *
132
+     * @throws DefinedAliasException
133
+     *
134
+     * @return $this
135
+     */
136
+    public function share( $alias, $definition ) {
137
+        $this->define( $alias, $definition );
138
+
139
+        if ( is_array( $alias ) ) {
140
+            $alias = key( $alias );
141
+        }
142
+
143
+        $this->shared[ $alias ] = true;
144
+
145
+        return $this;
146
+    }
147
+
148
+    /**
149
+     * {@inheritdoc}
150
+     *
151
+     * @param string $alias
152
+     *
153
+     * @throws UndefinedAliasException
154
+     *
155
+     * @return mixed
156
+     */
157
+    public function fetch( $alias ) {
158
+        if ( isset( $this->classes[ $alias ] ) ) {
159
+            // If the alias is a class name,
160
+            // then retrieve its linked alias.
161
+            // This is only registered when
162
+            // registering using an array.
163
+            $alias = $this->classes[ $alias ];
164
+        }
165
+
166
+        if ( ! isset( $this->aliases[ $alias ] ) ) {
167
+            throw new UndefinedAliasException( $alias );
168
+        }
169
+
170
+        $value = $this->definitions[ $alias ];
171
+
172
+        // If the shared value is a closure,
173
+        // execute it and assign the result
174
+        // in place of the closure.
175
+        if ( $value instanceof \Closure ) {
176
+            $factory = $value;
177
+            $value   = $factory( $this );
178
+        }
179
+
180
+        // If the value is shared, save the shared value.
181
+        if ( isset( $this->shared[ $alias ] ) ) {
182
+            $this->definitions[ $alias ] = $value;
183
+        }
184
+
185
+        // Return the fetched value.
186
+        return $value;
187
+    }
188
+
189
+    /**
190
+     * {@inheritdoc}
191
+     *
192
+     * @param  string $alias
193
+     *
194
+     * @return bool
195
+     */
196
+    public function has( $alias ) {
197
+        return isset( $this->aliases[ $alias ] );
198
+    }
199
+
200
+    /**
201
+     * {@inheritDoc}
202
+     *
203
+     * @param string $alias
204
+     *
205
+     * @return $this
206
+     */
207
+    public function remove( $alias ) {
208
+        if ( isset( $this->aliases[ $alias ] ) ) {
209
+            /**
210
+             * If there's no reference in the aliases array,
211
+             * the service won't be found on fetching and
212
+             * can be overwritten on setting.
213
+             *
214
+             * Pros: Quick setting/unsetting, faster
215
+             * performance on those operations when doing
216
+             * a lot of these.
217
+             *
218
+             * Cons: Objects and values set in the container
219
+             * can't get garbage collected.
220
+             *
221
+             * If this is a problem, this may need to be revisited.
222
+             */
223
+            unset( $this->aliases[ $alias ] );
224
+        }
225
+
226
+        return $this;
227
+    }
228
+
229
+    /**
230
+     * {@inheritDoc}
231
+     *
232
+     * @param ServiceProvider $provider
233
+     *
234
+     * @return $this
235
+     */
236
+    public function register( ServiceProvider $provider ) {
237
+        // @todo make sure provider is only registered once
238
+        $provider->register( $this );
239
+
240
+        return $this;
241
+    }
242
+
243
+    /**
244
+     * Set a value into the container.
245
+     *
246
+     * @param  string $id
247
+     * @param  mixed  $value
248
+     *
249
+     * @see    define
250
+     */
251
+    public function offsetSet( $id, $value ) {
252
+        $this->define( $id, $value );
253
+    }
254
+
255
+    /**
256
+     * Get an value from the container.
257
+     *
258
+     * @param  string $id
259
+     *
260
+     * @return object
261
+     * @throws UndefinedAliasException
262
+     *
263
+     * @see    fetch
264
+     */
265
+    public function offsetGet( $id ) {
266
+        return $this->fetch( $id );
267
+    }
268
+
269
+    /**
270
+     * Checks if a key is set on the container.
271
+     *
272
+     * @param  string $id
273
+     *
274
+     * @return bool
275
+     *
276
+     * @see    has
277
+     */
278
+    public function offsetExists( $id ) {
279
+        return $this->has( $id );
280
+    }
281
+
282
+    /**
283
+     * Remove a key from the container.
284
+     *
285
+     * @param string $id
286
+     *
287
+     * @see   remove
288
+     */
289
+    public function offsetUnset( $id ) {
290
+        $this->remove( $id );
291
+    }
292
+
293
+    /**
294
+     * Sets the object properties to prepare for the loop.
295
+     */
296
+    public function rewind() {
297
+        $this->position = 0;
298
+        $this->keys     = array_keys( $this->aliases );
299
+    }
300
+
301
+    /**
302
+     * Retrieves the service object for the current step in the loop.
303
+     *
304
+     * @return object
305
+     */
306
+    public function current() {
307
+        return $this->fetch( $this->keys[ $this->position ] );
308
+    }
309
+
310
+    /**
311
+     * Retrieves the key for the current step in the loop.
312
+     *
313
+     * @return string
314
+     */
315
+    public function key() {
316
+        return $this->keys[ $this->position ];
317
+    }
318
+
319
+    /**
320
+     * Increments to the next step in the loop.
321
+     */
322
+    public function next() {
323
+        $this->position ++;
324
+    }
325
+
326
+    /**
327
+     * Checks if the next step in the loop in valid.
328
+     *
329
+     * @return bool
330
+     */
331
+    public function valid() {
332
+        return isset( $this->keys[ $this->position ] );
333
+    }
334 334
 }
Please login to merge, or discard this patch.
Spacing   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -71,17 +71,17 @@  discard block
 block discarded – undo
71 71
 	 *
72 72
 	 * @param ServiceProvider[]|string[] $providers
73 73
 	 */
74
-	public function __construct( array $providers = array() ) {
74
+	public function __construct(array $providers = array()) {
75 75
 		// array_unique ensures we only register each provider once.
76
-		$providers = array_unique( array_merge( $this->providers, $providers ) );
76
+		$providers = array_unique(array_merge($this->providers, $providers));
77 77
 
78
-		foreach ( $providers as $provider ) {
79
-			if ( is_string( $provider ) && class_exists( $provider ) ) {
78
+		foreach ($providers as $provider) {
79
+			if (is_string($provider) && class_exists($provider)) {
80 80
 				$provider = new $provider;
81 81
 			}
82 82
 
83
-			if ( $provider instanceof ServiceProvider ) {
84
-				$this->register( $provider );
83
+			if ($provider instanceof ServiceProvider) {
84
+				$this->register($provider);
85 85
 			}
86 86
 		}
87 87
 	}
@@ -97,27 +97,27 @@  discard block
 block discarded – undo
97 97
 	 *
98 98
 	 * @return $this
99 99
 	 */
100
-	public function define( $alias, $definition ) {
101
-		if ( is_array( $alias ) ) {
102
-			$class = current( $alias );
103
-			$alias = key( $alias );
100
+	public function define($alias, $definition) {
101
+		if (is_array($alias)) {
102
+			$class = current($alias);
103
+			$alias = key($alias);
104 104
 		}
105 105
 
106
-		if ( isset( $this->aliases[ $alias ] ) ) {
107
-			throw new DefinedAliasException( $alias );
106
+		if (isset($this->aliases[$alias])) {
107
+			throw new DefinedAliasException($alias);
108 108
 		}
109 109
 
110
-		$this->aliases[ $alias ]     = true;
111
-		$this->definitions[ $alias ] = $definition;
110
+		$this->aliases[$alias]     = true;
111
+		$this->definitions[$alias] = $definition;
112 112
 
113 113
 		// Closures are treated as factories unless
114 114
 		// defined via Container::share.
115
-		if ( ! $definition instanceof \Closure ) {
116
-			$this->shared[ $alias ] = true;
115
+		if (!$definition instanceof \Closure) {
116
+			$this->shared[$alias] = true;
117 117
 		}
118 118
 
119
-		if ( isset( $class ) ) {
120
-			$this->classes[ $class ] = $alias;
119
+		if (isset($class)) {
120
+			$this->classes[$class] = $alias;
121 121
 		}
122 122
 
123 123
 		return $this;
@@ -133,14 +133,14 @@  discard block
 block discarded – undo
133 133
 	 *
134 134
 	 * @return $this
135 135
 	 */
136
-	public function share( $alias, $definition ) {
137
-		$this->define( $alias, $definition );
136
+	public function share($alias, $definition) {
137
+		$this->define($alias, $definition);
138 138
 
139
-		if ( is_array( $alias ) ) {
140
-			$alias = key( $alias );
139
+		if (is_array($alias)) {
140
+			$alias = key($alias);
141 141
 		}
142 142
 
143
-		$this->shared[ $alias ] = true;
143
+		$this->shared[$alias] = true;
144 144
 
145 145
 		return $this;
146 146
 	}
@@ -154,32 +154,32 @@  discard block
 block discarded – undo
154 154
 	 *
155 155
 	 * @return mixed
156 156
 	 */
157
-	public function fetch( $alias ) {
158
-		if ( isset( $this->classes[ $alias ] ) ) {
157
+	public function fetch($alias) {
158
+		if (isset($this->classes[$alias])) {
159 159
 			// If the alias is a class name,
160 160
 			// then retrieve its linked alias.
161 161
 			// This is only registered when
162 162
 			// registering using an array.
163
-			$alias = $this->classes[ $alias ];
163
+			$alias = $this->classes[$alias];
164 164
 		}
165 165
 
166
-		if ( ! isset( $this->aliases[ $alias ] ) ) {
167
-			throw new UndefinedAliasException( $alias );
166
+		if (!isset($this->aliases[$alias])) {
167
+			throw new UndefinedAliasException($alias);
168 168
 		}
169 169
 
170
-		$value = $this->definitions[ $alias ];
170
+		$value = $this->definitions[$alias];
171 171
 
172 172
 		// If the shared value is a closure,
173 173
 		// execute it and assign the result
174 174
 		// in place of the closure.
175
-		if ( $value instanceof \Closure ) {
175
+		if ($value instanceof \Closure) {
176 176
 			$factory = $value;
177
-			$value   = $factory( $this );
177
+			$value   = $factory($this);
178 178
 		}
179 179
 
180 180
 		// If the value is shared, save the shared value.
181
-		if ( isset( $this->shared[ $alias ] ) ) {
182
-			$this->definitions[ $alias ] = $value;
181
+		if (isset($this->shared[$alias])) {
182
+			$this->definitions[$alias] = $value;
183 183
 		}
184 184
 
185 185
 		// Return the fetched value.
@@ -193,8 +193,8 @@  discard block
 block discarded – undo
193 193
 	 *
194 194
 	 * @return bool
195 195
 	 */
196
-	public function has( $alias ) {
197
-		return isset( $this->aliases[ $alias ] );
196
+	public function has($alias) {
197
+		return isset($this->aliases[$alias]);
198 198
 	}
199 199
 
200 200
 	/**
@@ -204,8 +204,8 @@  discard block
 block discarded – undo
204 204
 	 *
205 205
 	 * @return $this
206 206
 	 */
207
-	public function remove( $alias ) {
208
-		if ( isset( $this->aliases[ $alias ] ) ) {
207
+	public function remove($alias) {
208
+		if (isset($this->aliases[$alias])) {
209 209
 			/**
210 210
 			 * If there's no reference in the aliases array,
211 211
 			 * the service won't be found on fetching and
@@ -220,7 +220,7 @@  discard block
 block discarded – undo
220 220
 			 *
221 221
 			 * If this is a problem, this may need to be revisited.
222 222
 			 */
223
-			unset( $this->aliases[ $alias ] );
223
+			unset($this->aliases[$alias]);
224 224
 		}
225 225
 
226 226
 		return $this;
@@ -233,9 +233,9 @@  discard block
 block discarded – undo
233 233
 	 *
234 234
 	 * @return $this
235 235
 	 */
236
-	public function register( ServiceProvider $provider ) {
236
+	public function register(ServiceProvider $provider) {
237 237
 		// @todo make sure provider is only registered once
238
-		$provider->register( $this );
238
+		$provider->register($this);
239 239
 
240 240
 		return $this;
241 241
 	}
@@ -248,8 +248,8 @@  discard block
 block discarded – undo
248 248
 	 *
249 249
 	 * @see    define
250 250
 	 */
251
-	public function offsetSet( $id, $value ) {
252
-		$this->define( $id, $value );
251
+	public function offsetSet($id, $value) {
252
+		$this->define($id, $value);
253 253
 	}
254 254
 
255 255
 	/**
@@ -262,8 +262,8 @@  discard block
 block discarded – undo
262 262
 	 *
263 263
 	 * @see    fetch
264 264
 	 */
265
-	public function offsetGet( $id ) {
266
-		return $this->fetch( $id );
265
+	public function offsetGet($id) {
266
+		return $this->fetch($id);
267 267
 	}
268 268
 
269 269
 	/**
@@ -275,8 +275,8 @@  discard block
 block discarded – undo
275 275
 	 *
276 276
 	 * @see    has
277 277
 	 */
278
-	public function offsetExists( $id ) {
279
-		return $this->has( $id );
278
+	public function offsetExists($id) {
279
+		return $this->has($id);
280 280
 	}
281 281
 
282 282
 	/**
@@ -286,8 +286,8 @@  discard block
 block discarded – undo
286 286
 	 *
287 287
 	 * @see   remove
288 288
 	 */
289
-	public function offsetUnset( $id ) {
290
-		$this->remove( $id );
289
+	public function offsetUnset($id) {
290
+		$this->remove($id);
291 291
 	}
292 292
 
293 293
 	/**
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
 	 */
296 296
 	public function rewind() {
297 297
 		$this->position = 0;
298
-		$this->keys     = array_keys( $this->aliases );
298
+		$this->keys     = array_keys($this->aliases);
299 299
 	}
300 300
 
301 301
 	/**
@@ -304,7 +304,7 @@  discard block
 block discarded – undo
304 304
 	 * @return object
305 305
 	 */
306 306
 	public function current() {
307
-		return $this->fetch( $this->keys[ $this->position ] );
307
+		return $this->fetch($this->keys[$this->position]);
308 308
 	}
309 309
 
310 310
 	/**
@@ -313,14 +313,14 @@  discard block
 block discarded – undo
313 313
 	 * @return string
314 314
 	 */
315 315
 	public function key() {
316
-		return $this->keys[ $this->position ];
316
+		return $this->keys[$this->position];
317 317
 	}
318 318
 
319 319
 	/**
320 320
 	 * Increments to the next step in the loop.
321 321
 	 */
322 322
 	public function next() {
323
-		$this->position ++;
323
+		$this->position++;
324 324
 	}
325 325
 
326 326
 	/**
@@ -329,6 +329,6 @@  discard block
 block discarded – undo
329 329
 	 * @return bool
330 330
 	 */
331 331
 	public function valid() {
332
-		return isset( $this->keys[ $this->position ] );
332
+		return isset($this->keys[$this->position]);
333 333
 	}
334 334
 }
Please login to merge, or discard this patch.
src/Core/Application.php 2 patches
Indentation   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -13,146 +13,146 @@
 block discarded – undo
13 13
  * @package Intraxia\Jaxion
14 14
  */
15 15
 class Application extends Container implements ApplicationContract {
16
-	/**
17
-	 * Define plugin version on Application.
18
-	 */
19
-	const VERSION = '';
20
-
21
-	/**
22
-	 * Singleton instance of the Application object
23
-	 *
24
-	 * @var Application
25
-	 */
26
-	protected static $instance = null;
27
-
28
-	/**
29
-	 * Instantiates a new Application container.
30
-	 *
31
-	 * The Application constructor enforces the presence of of a single instance
32
-	 * of the Application. If an instance already exists, an Exception will be thrown.
33
-	 *
34
-	 * @param string $file
35
-	 * @param array  $providers
36
-	 *
37
-	 * @throws ApplicationAlreadyBootedException
38
-	 */
39
-	public function __construct( $file, array $providers = array() ) {
40
-		if ( null !== static::$instance ) {
41
-			throw new ApplicationAlreadyBootedException;
42
-		}
43
-
44
-		static::$instance = $this;
45
-
46
-		$this->register_constants( $file );
47
-		$this->register_core_services();
48
-		$this->load_i18n();
49
-
50
-		register_activation_hook( $file, array( $this, 'activate' ) );
51
-		register_deactivation_hook( $file, array( $this, 'deactivate' ) );
52
-
53
-		parent::__construct( $providers );
54
-	}
55
-
56
-	/**
57
-	 * {@inheritDoc}
58
-	 *
59
-	 * @throws UnexpectedValueException
60
-	 */
61
-	public function boot() {
62
-		$loader = $this->fetch( 'loader' );
63
-
64
-		if ( ! $loader instanceof LoaderContract ) {
65
-			throw new UnexpectedValueException;
66
-		}
67
-
68
-		foreach ( $this as $alias => $value ) {
69
-			if ( $value instanceof HasActions ) {
70
-				$loader->register_actions( $value );
71
-			}
72
-
73
-			if ( $value instanceof HasFilters ) {
74
-				$loader->register_filters( $value );
75
-			}
76
-
77
-			if ( $value instanceof HasShortcode ) {
78
-				$loader->register_shortcode( $value );
79
-			}
80
-		}
81
-
82
-		add_action( 'plugins_loaded', array( $loader, 'run' ) );
83
-	}
84
-
85
-	/**
86
-	 * {@inheritdoc}
87
-	 *
88
-	 * @codeCoverageIgnore
89
-	 */
90
-	public function activate() {
91
-		// no-op
92
-	}
93
-
94
-	/**
95
-	 * {@inheritdoc}
96
-	 *
97
-	 * @codeCoverageIgnore
98
-	 */
99
-	public function deactivate() {
100
-		// no-op
101
-	}
102
-
103
-	/**
104
-	 * {@inheritDoc}
105
-	 *
106
-	 * @return Application
107
-	 * @throws ApplicationNotBootedException
108
-	 */
109
-	public static function instance() {
110
-		if ( null === static::$instance ) {
111
-			throw new ApplicationNotBootedException;
112
-		}
113
-
114
-		return static::$instance;
115
-	}
116
-
117
-	/**
118
-	 * {@inheritDoc}
119
-	 */
120
-	public static function shutdown() {
121
-		if ( null !== static::$instance ) {
122
-			static::$instance = null;
123
-		}
124
-	}
125
-
126
-	/**
127
-	 * Sets the plugin's url, path, and basename.
128
-	 *
129
-	 * @param string $file
130
-	 */
131
-	private function register_constants( $file ) {
132
-		$this->share( 'url', plugin_dir_url( $file ) );
133
-		$this->share( 'path', plugin_dir_path( $file ) );
134
-		$this->share( 'basename', $basename = plugin_basename( $file ) );
135
-		$this->share( 'slug', dirname( $basename ) );
136
-		$this->share( 'version', static::VERSION );
137
-	}
138
-
139
-	/**
140
-	 * Registers the built-in services with the Application container.
141
-	 */
142
-	private function register_core_services() {
143
-		$this->share( array( 'loader' => 'Intraxia\Jaxion\Contract\Core\Loader' ), function ( $app ) {
144
-			return new Loader( $app );
145
-		} );
146
-	}
147
-
148
-	/**
149
-	 * Load's the plugin's translation files.
150
-	 */
151
-	private function load_i18n() {
152
-		load_plugin_textdomain(
153
-			$this->fetch( 'basename' ),
154
-			false,
155
-			basename( $this->fetch( 'path' ) ) . '/languages/'
156
-		);
157
-	}
16
+    /**
17
+     * Define plugin version on Application.
18
+     */
19
+    const VERSION = '';
20
+
21
+    /**
22
+     * Singleton instance of the Application object
23
+     *
24
+     * @var Application
25
+     */
26
+    protected static $instance = null;
27
+
28
+    /**
29
+     * Instantiates a new Application container.
30
+     *
31
+     * The Application constructor enforces the presence of of a single instance
32
+     * of the Application. If an instance already exists, an Exception will be thrown.
33
+     *
34
+     * @param string $file
35
+     * @param array  $providers
36
+     *
37
+     * @throws ApplicationAlreadyBootedException
38
+     */
39
+    public function __construct( $file, array $providers = array() ) {
40
+        if ( null !== static::$instance ) {
41
+            throw new ApplicationAlreadyBootedException;
42
+        }
43
+
44
+        static::$instance = $this;
45
+
46
+        $this->register_constants( $file );
47
+        $this->register_core_services();
48
+        $this->load_i18n();
49
+
50
+        register_activation_hook( $file, array( $this, 'activate' ) );
51
+        register_deactivation_hook( $file, array( $this, 'deactivate' ) );
52
+
53
+        parent::__construct( $providers );
54
+    }
55
+
56
+    /**
57
+     * {@inheritDoc}
58
+     *
59
+     * @throws UnexpectedValueException
60
+     */
61
+    public function boot() {
62
+        $loader = $this->fetch( 'loader' );
63
+
64
+        if ( ! $loader instanceof LoaderContract ) {
65
+            throw new UnexpectedValueException;
66
+        }
67
+
68
+        foreach ( $this as $alias => $value ) {
69
+            if ( $value instanceof HasActions ) {
70
+                $loader->register_actions( $value );
71
+            }
72
+
73
+            if ( $value instanceof HasFilters ) {
74
+                $loader->register_filters( $value );
75
+            }
76
+
77
+            if ( $value instanceof HasShortcode ) {
78
+                $loader->register_shortcode( $value );
79
+            }
80
+        }
81
+
82
+        add_action( 'plugins_loaded', array( $loader, 'run' ) );
83
+    }
84
+
85
+    /**
86
+     * {@inheritdoc}
87
+     *
88
+     * @codeCoverageIgnore
89
+     */
90
+    public function activate() {
91
+        // no-op
92
+    }
93
+
94
+    /**
95
+     * {@inheritdoc}
96
+     *
97
+     * @codeCoverageIgnore
98
+     */
99
+    public function deactivate() {
100
+        // no-op
101
+    }
102
+
103
+    /**
104
+     * {@inheritDoc}
105
+     *
106
+     * @return Application
107
+     * @throws ApplicationNotBootedException
108
+     */
109
+    public static function instance() {
110
+        if ( null === static::$instance ) {
111
+            throw new ApplicationNotBootedException;
112
+        }
113
+
114
+        return static::$instance;
115
+    }
116
+
117
+    /**
118
+     * {@inheritDoc}
119
+     */
120
+    public static function shutdown() {
121
+        if ( null !== static::$instance ) {
122
+            static::$instance = null;
123
+        }
124
+    }
125
+
126
+    /**
127
+     * Sets the plugin's url, path, and basename.
128
+     *
129
+     * @param string $file
130
+     */
131
+    private function register_constants( $file ) {
132
+        $this->share( 'url', plugin_dir_url( $file ) );
133
+        $this->share( 'path', plugin_dir_path( $file ) );
134
+        $this->share( 'basename', $basename = plugin_basename( $file ) );
135
+        $this->share( 'slug', dirname( $basename ) );
136
+        $this->share( 'version', static::VERSION );
137
+    }
138
+
139
+    /**
140
+     * Registers the built-in services with the Application container.
141
+     */
142
+    private function register_core_services() {
143
+        $this->share( array( 'loader' => 'Intraxia\Jaxion\Contract\Core\Loader' ), function ( $app ) {
144
+            return new Loader( $app );
145
+        } );
146
+    }
147
+
148
+    /**
149
+     * Load's the plugin's translation files.
150
+     */
151
+    private function load_i18n() {
152
+        load_plugin_textdomain(
153
+            $this->fetch( 'basename' ),
154
+            false,
155
+            basename( $this->fetch( 'path' ) ) . '/languages/'
156
+        );
157
+    }
158 158
 }
Please login to merge, or discard this patch.
Spacing   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -36,21 +36,21 @@  discard block
 block discarded – undo
36 36
 	 *
37 37
 	 * @throws ApplicationAlreadyBootedException
38 38
 	 */
39
-	public function __construct( $file, array $providers = array() ) {
40
-		if ( null !== static::$instance ) {
39
+	public function __construct($file, array $providers = array()) {
40
+		if (null !== static::$instance) {
41 41
 			throw new ApplicationAlreadyBootedException;
42 42
 		}
43 43
 
44 44
 		static::$instance = $this;
45 45
 
46
-		$this->register_constants( $file );
46
+		$this->register_constants($file);
47 47
 		$this->register_core_services();
48 48
 		$this->load_i18n();
49 49
 
50
-		register_activation_hook( $file, array( $this, 'activate' ) );
51
-		register_deactivation_hook( $file, array( $this, 'deactivate' ) );
50
+		register_activation_hook($file, array($this, 'activate'));
51
+		register_deactivation_hook($file, array($this, 'deactivate'));
52 52
 
53
-		parent::__construct( $providers );
53
+		parent::__construct($providers);
54 54
 	}
55 55
 
56 56
 	/**
@@ -59,27 +59,27 @@  discard block
 block discarded – undo
59 59
 	 * @throws UnexpectedValueException
60 60
 	 */
61 61
 	public function boot() {
62
-		$loader = $this->fetch( 'loader' );
62
+		$loader = $this->fetch('loader');
63 63
 
64
-		if ( ! $loader instanceof LoaderContract ) {
64
+		if (!$loader instanceof LoaderContract) {
65 65
 			throw new UnexpectedValueException;
66 66
 		}
67 67
 
68
-		foreach ( $this as $alias => $value ) {
69
-			if ( $value instanceof HasActions ) {
70
-				$loader->register_actions( $value );
68
+		foreach ($this as $alias => $value) {
69
+			if ($value instanceof HasActions) {
70
+				$loader->register_actions($value);
71 71
 			}
72 72
 
73
-			if ( $value instanceof HasFilters ) {
74
-				$loader->register_filters( $value );
73
+			if ($value instanceof HasFilters) {
74
+				$loader->register_filters($value);
75 75
 			}
76 76
 
77
-			if ( $value instanceof HasShortcode ) {
78
-				$loader->register_shortcode( $value );
77
+			if ($value instanceof HasShortcode) {
78
+				$loader->register_shortcode($value);
79 79
 			}
80 80
 		}
81 81
 
82
-		add_action( 'plugins_loaded', array( $loader, 'run' ) );
82
+		add_action('plugins_loaded', array($loader, 'run'));
83 83
 	}
84 84
 
85 85
 	/**
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
 	 * @throws ApplicationNotBootedException
108 108
 	 */
109 109
 	public static function instance() {
110
-		if ( null === static::$instance ) {
110
+		if (null === static::$instance) {
111 111
 			throw new ApplicationNotBootedException;
112 112
 		}
113 113
 
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
 	 * {@inheritDoc}
119 119
 	 */
120 120
 	public static function shutdown() {
121
-		if ( null !== static::$instance ) {
121
+		if (null !== static::$instance) {
122 122
 			static::$instance = null;
123 123
 		}
124 124
 	}
@@ -128,20 +128,20 @@  discard block
 block discarded – undo
128 128
 	 *
129 129
 	 * @param string $file
130 130
 	 */
131
-	private function register_constants( $file ) {
132
-		$this->share( 'url', plugin_dir_url( $file ) );
133
-		$this->share( 'path', plugin_dir_path( $file ) );
134
-		$this->share( 'basename', $basename = plugin_basename( $file ) );
135
-		$this->share( 'slug', dirname( $basename ) );
136
-		$this->share( 'version', static::VERSION );
131
+	private function register_constants($file) {
132
+		$this->share('url', plugin_dir_url($file));
133
+		$this->share('path', plugin_dir_path($file));
134
+		$this->share('basename', $basename = plugin_basename($file));
135
+		$this->share('slug', dirname($basename));
136
+		$this->share('version', static::VERSION);
137 137
 	}
138 138
 
139 139
 	/**
140 140
 	 * Registers the built-in services with the Application container.
141 141
 	 */
142 142
 	private function register_core_services() {
143
-		$this->share( array( 'loader' => 'Intraxia\Jaxion\Contract\Core\Loader' ), function ( $app ) {
144
-			return new Loader( $app );
143
+		$this->share(array('loader' => 'Intraxia\Jaxion\Contract\Core\Loader'), function($app) {
144
+			return new Loader($app);
145 145
 		} );
146 146
 	}
147 147
 
@@ -150,9 +150,9 @@  discard block
 block discarded – undo
150 150
 	 */
151 151
 	private function load_i18n() {
152 152
 		load_plugin_textdomain(
153
-			$this->fetch( 'basename' ),
153
+			$this->fetch('basename'),
154 154
 			false,
155
-			basename( $this->fetch( 'path' ) ) . '/languages/'
155
+			basename($this->fetch('path')).'/languages/'
156 156
 		);
157 157
 	}
158 158
 }
Please login to merge, or discard this patch.
src/Axolotl/Collection.php 2 patches
Indentation   +148 added lines, -148 removed lines patch added patch discarded remove patch
@@ -14,152 +14,152 @@
 block discarded – undo
14 14
  * @subpackage Axolotl
15 15
  */
16 16
 class Collection implements Countable, Iterator, Serializes {
17
-	/**
18
-	 * Collection elements.
19
-	 *
20
-	 * @var array
21
-	 */
22
-	protected $elements = array();
23
-
24
-	/**
25
-	 * Models registered to the collection.
26
-	 *
27
-	 * @var string
28
-	 */
29
-	protected $model;
30
-
31
-	/**
32
-	 * Where Collection is in loop.
33
-	 *
34
-	 * @var int
35
-	 */
36
-	protected $position = 0;
37
-
38
-	/**
39
-	 * Collection constructor.
40
-	 *
41
-	 * @param array $elements
42
-	 * @param array $config
43
-	 */
44
-	public function __construct( array $elements = array(), array $config = array() ) {
45
-		$this->parse_config( $config );
46
-
47
-		foreach ( $elements as $element ) {
48
-			$this->add( $element );
49
-		}
50
-	}
51
-
52
-	/**
53
-	 * Adds a new element to the Collection.
54
-	 *
55
-	 * @param mixed $element
56
-	 *
57
-	 * @throws RuntimeException
58
-	 */
59
-	public function add( $element ) {
60
-		if ( $this->model && is_array( $element ) ) {
61
-			$element = new $this->model( $element );
62
-		}
63
-
64
-		if ( $this->model && ! ( $element instanceof $this->model ) ) {
65
-			throw new RuntimeException;
66
-		}
67
-
68
-		$this->elements[] = $element;
69
-	}
70
-
71
-	/**
72
-	 * Fetches the element at the provided index.
73
-	 *
74
-	 * @param int $index
75
-	 *
76
-	 * @return mixed
77
-	 */
78
-	public function at( $index ) {
79
-		return $this->elements[ $index ];
80
-	}
81
-
82
-	/**
83
-	 * Return the current element.
84
-	 *
85
-	 * @return mixed
86
-	 */
87
-	public function current() {
88
-		return $this->at( $this->position );
89
-	}
90
-
91
-	/**
92
-	 * Move forward to next element.
93
-	 */
94
-	public function next() {
95
-		$this->position ++;
96
-	}
97
-
98
-	/**
99
-	 * Return the key of the current element.
100
-	 *
101
-	 * @return mixed
102
-	 */
103
-	public function key() {
104
-		return $this->position;
105
-	}
106
-
107
-	/**
108
-	 * Checks if current position is valid.
109
-	 *
110
-	 * @return bool
111
-	 */
112
-	public function valid() {
113
-		return isset( $this->elements[ $this->position ] );
114
-	}
115
-
116
-	/**
117
-	 * Rewind the Iterator to the first element.
118
-	 */
119
-	public function rewind() {
120
-		$this->position = 0;
121
-	}
122
-
123
-	/**
124
-	 * Count elements of an object.
125
-	 *
126
-	 * @return int
127
-	 */
128
-	public function count() {
129
-		return count( $this->elements );
130
-	}
131
-
132
-	/**
133
-	 * Parses the Collection config to set its properties.
134
-	 *
135
-	 * @param array $config
136
-	 *
137
-	 * @throws LogicException
138
-	 */
139
-	protected function parse_config( array $config ) {
140
-		if ( isset( $config['model'] ) ) {
141
-			$model = $config['model'];
142
-
143
-			if ( ! is_subclass_of( $model, 'Intraxia\Jaxion\Axolotl\Model' ) ) {
144
-				throw new LogicException;
145
-			}
146
-
147
-			$this->model = $model;
148
-		}
149
-	}
150
-
151
-	/**
152
-	 * {@inheritDoc}
153
-	 *
154
-	 * @return array
155
-	 */
156
-	public function serialize() {
157
-		return array_map(function( $element ) {
158
-			if ( $element instanceof Serializes ) {
159
-				return $element->serialize();
160
-			}
161
-
162
-			return $element;
163
-		}, $this->elements);
164
-	}
17
+    /**
18
+     * Collection elements.
19
+     *
20
+     * @var array
21
+     */
22
+    protected $elements = array();
23
+
24
+    /**
25
+     * Models registered to the collection.
26
+     *
27
+     * @var string
28
+     */
29
+    protected $model;
30
+
31
+    /**
32
+     * Where Collection is in loop.
33
+     *
34
+     * @var int
35
+     */
36
+    protected $position = 0;
37
+
38
+    /**
39
+     * Collection constructor.
40
+     *
41
+     * @param array $elements
42
+     * @param array $config
43
+     */
44
+    public function __construct( array $elements = array(), array $config = array() ) {
45
+        $this->parse_config( $config );
46
+
47
+        foreach ( $elements as $element ) {
48
+            $this->add( $element );
49
+        }
50
+    }
51
+
52
+    /**
53
+     * Adds a new element to the Collection.
54
+     *
55
+     * @param mixed $element
56
+     *
57
+     * @throws RuntimeException
58
+     */
59
+    public function add( $element ) {
60
+        if ( $this->model && is_array( $element ) ) {
61
+            $element = new $this->model( $element );
62
+        }
63
+
64
+        if ( $this->model && ! ( $element instanceof $this->model ) ) {
65
+            throw new RuntimeException;
66
+        }
67
+
68
+        $this->elements[] = $element;
69
+    }
70
+
71
+    /**
72
+     * Fetches the element at the provided index.
73
+     *
74
+     * @param int $index
75
+     *
76
+     * @return mixed
77
+     */
78
+    public function at( $index ) {
79
+        return $this->elements[ $index ];
80
+    }
81
+
82
+    /**
83
+     * Return the current element.
84
+     *
85
+     * @return mixed
86
+     */
87
+    public function current() {
88
+        return $this->at( $this->position );
89
+    }
90
+
91
+    /**
92
+     * Move forward to next element.
93
+     */
94
+    public function next() {
95
+        $this->position ++;
96
+    }
97
+
98
+    /**
99
+     * Return the key of the current element.
100
+     *
101
+     * @return mixed
102
+     */
103
+    public function key() {
104
+        return $this->position;
105
+    }
106
+
107
+    /**
108
+     * Checks if current position is valid.
109
+     *
110
+     * @return bool
111
+     */
112
+    public function valid() {
113
+        return isset( $this->elements[ $this->position ] );
114
+    }
115
+
116
+    /**
117
+     * Rewind the Iterator to the first element.
118
+     */
119
+    public function rewind() {
120
+        $this->position = 0;
121
+    }
122
+
123
+    /**
124
+     * Count elements of an object.
125
+     *
126
+     * @return int
127
+     */
128
+    public function count() {
129
+        return count( $this->elements );
130
+    }
131
+
132
+    /**
133
+     * Parses the Collection config to set its properties.
134
+     *
135
+     * @param array $config
136
+     *
137
+     * @throws LogicException
138
+     */
139
+    protected function parse_config( array $config ) {
140
+        if ( isset( $config['model'] ) ) {
141
+            $model = $config['model'];
142
+
143
+            if ( ! is_subclass_of( $model, 'Intraxia\Jaxion\Axolotl\Model' ) ) {
144
+                throw new LogicException;
145
+            }
146
+
147
+            $this->model = $model;
148
+        }
149
+    }
150
+
151
+    /**
152
+     * {@inheritDoc}
153
+     *
154
+     * @return array
155
+     */
156
+    public function serialize() {
157
+        return array_map(function( $element ) {
158
+            if ( $element instanceof Serializes ) {
159
+                return $element->serialize();
160
+            }
161
+
162
+            return $element;
163
+        }, $this->elements);
164
+    }
165 165
 }
Please login to merge, or discard this patch.
Spacing   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -41,11 +41,11 @@  discard block
 block discarded – undo
41 41
 	 * @param array $elements
42 42
 	 * @param array $config
43 43
 	 */
44
-	public function __construct( array $elements = array(), array $config = array() ) {
45
-		$this->parse_config( $config );
44
+	public function __construct(array $elements = array(), array $config = array()) {
45
+		$this->parse_config($config);
46 46
 
47
-		foreach ( $elements as $element ) {
48
-			$this->add( $element );
47
+		foreach ($elements as $element) {
48
+			$this->add($element);
49 49
 		}
50 50
 	}
51 51
 
@@ -56,12 +56,12 @@  discard block
 block discarded – undo
56 56
 	 *
57 57
 	 * @throws RuntimeException
58 58
 	 */
59
-	public function add( $element ) {
60
-		if ( $this->model && is_array( $element ) ) {
61
-			$element = new $this->model( $element );
59
+	public function add($element) {
60
+		if ($this->model && is_array($element)) {
61
+			$element = new $this->model($element);
62 62
 		}
63 63
 
64
-		if ( $this->model && ! ( $element instanceof $this->model ) ) {
64
+		if ($this->model && !($element instanceof $this->model)) {
65 65
 			throw new RuntimeException;
66 66
 		}
67 67
 
@@ -75,8 +75,8 @@  discard block
 block discarded – undo
75 75
 	 *
76 76
 	 * @return mixed
77 77
 	 */
78
-	public function at( $index ) {
79
-		return $this->elements[ $index ];
78
+	public function at($index) {
79
+		return $this->elements[$index];
80 80
 	}
81 81
 
82 82
 	/**
@@ -85,14 +85,14 @@  discard block
 block discarded – undo
85 85
 	 * @return mixed
86 86
 	 */
87 87
 	public function current() {
88
-		return $this->at( $this->position );
88
+		return $this->at($this->position);
89 89
 	}
90 90
 
91 91
 	/**
92 92
 	 * Move forward to next element.
93 93
 	 */
94 94
 	public function next() {
95
-		$this->position ++;
95
+		$this->position++;
96 96
 	}
97 97
 
98 98
 	/**
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
 	 * @return bool
111 111
 	 */
112 112
 	public function valid() {
113
-		return isset( $this->elements[ $this->position ] );
113
+		return isset($this->elements[$this->position]);
114 114
 	}
115 115
 
116 116
 	/**
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
 	 * @return int
127 127
 	 */
128 128
 	public function count() {
129
-		return count( $this->elements );
129
+		return count($this->elements);
130 130
 	}
131 131
 
132 132
 	/**
@@ -136,11 +136,11 @@  discard block
 block discarded – undo
136 136
 	 *
137 137
 	 * @throws LogicException
138 138
 	 */
139
-	protected function parse_config( array $config ) {
140
-		if ( isset( $config['model'] ) ) {
139
+	protected function parse_config(array $config) {
140
+		if (isset($config['model'])) {
141 141
 			$model = $config['model'];
142 142
 
143
-			if ( ! is_subclass_of( $model, 'Intraxia\Jaxion\Axolotl\Model' ) ) {
143
+			if (!is_subclass_of($model, 'Intraxia\Jaxion\Axolotl\Model')) {
144 144
 				throw new LogicException;
145 145
 			}
146 146
 
@@ -154,8 +154,8 @@  discard block
 block discarded – undo
154 154
 	 * @return array
155 155
 	 */
156 156
 	public function serialize() {
157
-		return array_map(function( $element ) {
158
-			if ( $element instanceof Serializes ) {
157
+		return array_map(function($element) {
158
+			if ($element instanceof Serializes) {
159 159
 				return $element->serialize();
160 160
 			}
161 161
 
Please login to merge, or discard this patch.
src/Utility/Str.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -11,39 +11,39 @@
 block discarded – undo
11 11
  * @subpackage Utility
12 12
  */
13 13
 class Str {
14
-	/**
15
-	 * Determine if a given string starts with a given substring.
16
-	 *
17
-	 * @param  string       $haystack
18
-	 * @param  string|array $needles
19
-	 *
20
-	 * @return bool
21
-	 */
22
-	public static function starts_with( $haystack, $needles ) {
23
-		foreach ( (array) $needles as $needle ) {
24
-			if ( '' !== $needle && 0 === strpos( $haystack, $needle ) ) {
25
-				return true;
26
-			}
27
-		}
14
+    /**
15
+     * Determine if a given string starts with a given substring.
16
+     *
17
+     * @param  string       $haystack
18
+     * @param  string|array $needles
19
+     *
20
+     * @return bool
21
+     */
22
+    public static function starts_with( $haystack, $needles ) {
23
+        foreach ( (array) $needles as $needle ) {
24
+            if ( '' !== $needle && 0 === strpos( $haystack, $needle ) ) {
25
+                return true;
26
+            }
27
+        }
28 28
 
29
-		return false;
30
-	}
29
+        return false;
30
+    }
31 31
 
32
-	/**
33
-	 * Determine if a given string ends with a given substring.
34
-	 *
35
-	 * @param  string       $haystack
36
-	 * @param  string|array $needles
37
-	 *
38
-	 * @return bool
39
-	 */
40
-	public static function ends_with( $haystack, $needles ) {
41
-		foreach ( (array) $needles as $needle ) {
42
-			if ( substr( $haystack, - strlen( $needle ) ) === (string) $needle ) {
43
-				return true;
44
-			}
45
-		}
32
+    /**
33
+     * Determine if a given string ends with a given substring.
34
+     *
35
+     * @param  string       $haystack
36
+     * @param  string|array $needles
37
+     *
38
+     * @return bool
39
+     */
40
+    public static function ends_with( $haystack, $needles ) {
41
+        foreach ( (array) $needles as $needle ) {
42
+            if ( substr( $haystack, - strlen( $needle ) ) === (string) $needle ) {
43
+                return true;
44
+            }
45
+        }
46 46
 
47
-		return false;
48
-	}
47
+        return false;
48
+    }
49 49
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -19,9 +19,9 @@  discard block
 block discarded – undo
19 19
 	 *
20 20
 	 * @return bool
21 21
 	 */
22
-	public static function starts_with( $haystack, $needles ) {
23
-		foreach ( (array) $needles as $needle ) {
24
-			if ( '' !== $needle && 0 === strpos( $haystack, $needle ) ) {
22
+	public static function starts_with($haystack, $needles) {
23
+		foreach ((array) $needles as $needle) {
24
+			if ('' !== $needle && 0 === strpos($haystack, $needle)) {
25 25
 				return true;
26 26
 			}
27 27
 		}
@@ -37,9 +37,9 @@  discard block
 block discarded – undo
37 37
 	 *
38 38
 	 * @return bool
39 39
 	 */
40
-	public static function ends_with( $haystack, $needles ) {
41
-		foreach ( (array) $needles as $needle ) {
42
-			if ( substr( $haystack, - strlen( $needle ) ) === (string) $needle ) {
40
+	public static function ends_with($haystack, $needles) {
41
+		foreach ((array) $needles as $needle) {
42
+			if (substr($haystack, - strlen($needle)) === (string) $needle) {
43 43
 				return true;
44 44
 			}
45 45
 		}
Please login to merge, or discard this patch.
src/Axolotl/Model.php 2 patches
Indentation   +663 added lines, -663 removed lines patch added patch discarded remove patch
@@ -20,667 +20,667 @@
 block discarded – undo
20 20
  * @since      0.1.0
21 21
  */
22 22
 abstract class Model implements Serializes {
23
-	/**
24
-	 * Memoized values for class methods.
25
-	 *
26
-	 * @var array
27
-	 */
28
-	private static $memo = array();
29
-
30
-	/**
31
-	 * Model attributes.
32
-	 *
33
-	 * @var array
34
-	 */
35
-	private $attributes = array(
36
-		'table' => array(),
37
-		'object'  => null,
38
-	);
39
-
40
-	/**
41
-	 * Model's original attributes.
42
-	 *
43
-	 * @var array
44
-	 */
45
-	private $original = array(
46
-		'table' => array(),
47
-		'object'  => null,
48
-	);
49
-
50
-	/**
51
-	 * Properties which are allowed to be set on the model.
52
-	 *
53
-	 * If this array is empty, any attributes can be set on the model.
54
-	 *
55
-	 * @var string[]
56
-	 */
57
-	protected $fillable = array();
58
-
59
-	/**
60
-	 * Properties which cannot be automatically filled on the model.
61
-	 *
62
-	 * If the model is unguarded, these properties can be filled.
63
-	 *
64
-	 * @var array
65
-	 */
66
-	protected $guarded = array();
67
-
68
-	/**
69
-	 * Properties which should not be serialized.
70
-	 *
71
-	 * @var array
72
-	 */
73
-	protected $hidden = array();
74
-
75
-	/**
76
-	 * Properties which should be serialized.
77
-	 *
78
-	 * @var array
79
-	 */
80
-	protected $visible = array();
81
-
82
-	/**
83
-	 * Whether the model's properties are guarded.
84
-	 *
85
-	 * When false, allows guarded properties to be filled.
86
-	 *
87
-	 * @var bool
88
-	 */
89
-	protected $is_guarded = true;
90
-
91
-	/**
92
-	 * Constructs a new model with provided attributes.
93
-	 *
94
-	 * If 'object' is passed as one of the attributes, the underlying post
95
-	 * will be overwritten.
96
-	 *
97
-	 * @param array <string, mixed> $attributes
98
-	 */
99
-	public function __construct( array $attributes = array() ) {
100
-		$this->maybe_boot();
101
-		$this->sync_original();
102
-
103
-		if ( $this->uses_wp_object() ) {
104
-			$this->create_wp_object();
105
-		}
106
-
107
-		$this->refresh( $attributes );
108
-	}
109
-
110
-	/**
111
-	 * Refreshes the model's current attributes with the provided array.
112
-	 *
113
-	 * The model's attributes will match what was provided in the array,
114
-	 * and any attributes not passed
115
-	 *
116
-	 * @param array $attributes
117
-	 *
118
-	 * @return $this
119
-	 */
120
-	public function refresh( array $attributes ) {
121
-		$this->clear();
122
-
123
-		return $this->merge( $attributes );
124
-	}
125
-
126
-	/**
127
-	 * Merges the provided attributes with the provided array.
128
-	 *
129
-	 * @param array $attributes
130
-	 *
131
-	 * @return $this
132
-	 */
133
-	public function merge( array $attributes ) {
134
-		foreach ( $attributes as $name => $value ) {
135
-			$this->set_attribute( $name, $value );
136
-		}
137
-
138
-		return $this;
139
-	}
140
-
141
-	/**
142
-	 * Get the model's table attributes.
143
-	 *
144
-	 * Returns the array of for the model that will either need to be
145
-	 * saved in postmeta or a separate table.
146
-	 *
147
-	 * @return array
148
-	 */
149
-	public function get_table_attributes() {
150
-		return $this->attributes['table'];
151
-	}
152
-
153
-	/**
154
-	 * Get the model's original attributes.
155
-	 *
156
-	 * @return array
157
-	 */
158
-	public function get_original_table_attributes() {
159
-		return $this->original['table'];
160
-	}
161
-
162
-	/**
163
-	 * Retrieve an array of the attributes on the model
164
-	 * that have changed compared to the model's
165
-	 * original data.
166
-	 *
167
-	 * @return array
168
-	 */
169
-	public function get_changed_table_attributes() {
170
-		$changed = array();
171
-
172
-		foreach ( $this->get_table_attributes() as $attribute ) {
173
-			if ( $this->get_attribute( $attribute ) !==
174
-			     $this->get_original_attribute( $attribute )
175
-			) {
176
-				$changed[ $attribute ] = $this->get_attribute( $attribute );
177
-			}
178
-		}
179
-
180
-		return $changed;
181
-	}
182
-
183
-	/**
184
-	 * Get the model's underlying post.
185
-	 *
186
-	 * Returns the underlying WP_Post object for the model, representing
187
-	 * the data that will be save in the wp_posts table.
188
-	 *
189
-	 * @return false|WP_Post|WP_Term
190
-	 */
191
-	public function get_underlying_wp_object() {
192
-		if ( isset( $this->attributes['object'] ) ) {
193
-			return $this->attributes['object'];
194
-		}
195
-
196
-		return false;
197
-	}
198
-
199
-	/**
200
-	 * Get the model's original underlying post.
201
-	 *
202
-	 * @return WP_Post
203
-	 */
204
-	public function get_original_underlying_wp_object() {
205
-		return $this->original['object'];
206
-	}
207
-
208
-	/**
209
-	 * Get the model attributes on the WordPress object
210
-	 * that have changed compared to the model's
211
-	 * original attributes.
212
-	 *
213
-	 * @return array
214
-	 */
215
-	public function get_changed_wp_object_attributes() {
216
-		$changed = array();
217
-
218
-		foreach ( $this->get_wp_object_keys() as $key ) {
219
-			if ( $this->get_attribute( $key ) !==
220
-			     $this->get_original_attribute( $key )
221
-			) {
222
-				$changed[ $key ] = $this->get_attribute( $key );
223
-			}
224
-		}
225
-
226
-		return $changed;
227
-	}
228
-
229
-	/**
230
-	 * Magic __set method.
231
-	 *
232
-	 * Passes the name and value to set_attribute, which is where the magic happens.
233
-	 *
234
-	 * @param string $name
235
-	 * @param mixed  $value
236
-	 */
237
-	public function __set( $name, $value ) {
238
-		$this->set_attribute( $name, $value );
239
-	}
240
-
241
-	/**
242
-	 * Sets the model attributes.
243
-	 *
244
-	 * Checks whether the model attribute can be set, check if it
245
-	 * maps to the WP_Post property, otherwise, assigns it to the
246
-	 * table attribute array.
247
-	 *
248
-	 * @param string $name
249
-	 * @param mixed  $value
250
-	 *
251
-	 * @return $this
252
-	 *
253
-	 * @throws GuardedPropertyException
254
-	 */
255
-	public function set_attribute( $name, $value ) {
256
-		if ( 'object' === $name ) {
257
-			return $this->override_wp_object( $value );
258
-		}
259
-
260
-		if ( ! $this->is_fillable( $name ) ) {
261
-			throw new GuardedPropertyException;
262
-		}
263
-
264
-		if ( $method = $this->has_map_method( $name ) ) {
265
-			$this->attributes['object']->{$this->{$method}()} = $value;
266
-		} else {
267
-			$this->attributes['table'][ $name ] = $value;
268
-		}
269
-
270
-		return $this;
271
-	}
272
-
273
-	/**
274
-	 * Retrieves all the attribute keys for the model.
275
-	 *
276
-	 * @return array
277
-	 */
278
-	public function get_attribute_keys() {
279
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
280
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
281
-		}
282
-
283
-		return self::$memo[ get_called_class() ][ __METHOD__ ]
284
-			= array_merge(
285
-				$this->fillable,
286
-				$this->guarded,
287
-				$this->get_compute_methods()
288
-			);
289
-	}
290
-
291
-	/**
292
-	 * Retrieves the attribute keys that aren't mapped to a post.
293
-	 *
294
-	 * @return array
295
-	 */
296
-	public function get_table_keys() {
297
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
298
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
299
-		}
300
-
301
-		$keys = array();
302
-
303
-		foreach ( $this->get_attribute_keys() as $key ) {
304
-			if ( ! $this->has_map_method( $key ) &&
305
-			     ! $this->has_compute_method( $key )
306
-			) {
307
-				$keys[] = $key;
308
-			}
309
-		}
310
-
311
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
312
-	}
313
-
314
-	/**
315
-	 * Retrieves the attribute keys that are mapped to a post.
316
-	 *
317
-	 * @return array
318
-	 */
319
-	public function get_wp_object_keys() {
320
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
321
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
322
-		}
323
-
324
-		$keys = array();
325
-
326
-		foreach ( $this->get_attribute_keys() as $key ) {
327
-			if ( $this->has_map_method( $key ) ) {
328
-				$keys[] = $key;
329
-			}
330
-		}
331
-
332
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
333
-	}
334
-
335
-	/**
336
-	 * Returns the model's keys that are computed at call time.
337
-	 *
338
-	 * @return array
339
-	 */
340
-	public function get_computed_keys() {
341
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
342
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
343
-		}
344
-
345
-		$keys = array();
346
-
347
-		foreach ( $this->get_attribute_keys() as $key ) {
348
-			if ( $this->has_compute_method( $key ) ) {
349
-				$keys[] = $key;
350
-			}
351
-		}
352
-
353
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
354
-	}
355
-
356
-	/**
357
-	 * Serializes the model's public data into an array.
358
-	 *
359
-	 * @return array
360
-	 */
361
-	public function serialize() {
362
-		$attributes = array();
363
-
364
-		if ( $this->visible ) {
365
-			// If visible attributes are set, we'll only reveal those.
366
-			foreach ( $this->visible as $key ) {
367
-				$attributes[ $key ] = $this->get_attribute( $key );
368
-			}
369
-		} elseif ( $this->hidden ) {
370
-			// If hidden attributes are set, we'll grab everything and hide those.
371
-			foreach ( $this->get_attribute_keys() as $key ) {
372
-				if ( ! in_array( $key, $this->hidden ) ) {
373
-					$attributes[ $key ] = $this->get_attribute( $key );
374
-				}
375
-			}
376
-		} else {
377
-			// If nothing is hidden/visible, we'll grab and reveal everything.
378
-			foreach ( $this->get_attribute_keys() as $key ) {
379
-				$attributes[ $key ] = $this->get_attribute( $key );
380
-			}
381
-		}
382
-
383
-		return array_map( function ( $attribute ) {
384
-			if ( $attribute instanceof Serializes ) {
385
-				return $attribute->serialize();
386
-			}
387
-
388
-			return $attribute;
389
-		}, $attributes );
390
-	}
391
-
392
-	/**
393
-	 * Syncs the current attributes to the model's original.
394
-	 *
395
-	 * @return $this
396
-	 */
397
-	public function sync_original() {
398
-		$this->original = $this->attributes;
399
-
400
-		if ( $this->attributes['object'] ) {
401
-			$this->original['object'] = clone $this->attributes['object'];
402
-		}
403
-
404
-		return $this;
405
-	}
406
-
407
-	/**
408
-	 * Checks if a given attribute is mass-fillable.
409
-	 *
410
-	 * Returns true if the attribute can be filled, false if it can't.
411
-	 *
412
-	 * @param string $name
413
-	 *
414
-	 * @return bool
415
-	 */
416
-	private function is_fillable( $name ) {
417
-		// If this model isn't guarded, everything is fillable.
418
-		if ( ! $this->is_guarded ) {
419
-			return true;
420
-		}
421
-
422
-		// If it's in the fillable array, then it's fillable.
423
-		if ( in_array( $name, $this->fillable ) ) {
424
-			return true;
425
-		}
426
-
427
-		// If it's explicitly guarded, then it's not fillable.
428
-		if ( in_array( $name, $this->guarded ) ) {
429
-			return false;
430
-		}
431
-
432
-		// If fillable hasn't been defined, then everything else fillable.
433
-		return ! $this->fillable;
434
-	}
435
-
436
-	/**
437
-	 * Overrides the current WP_Post with a provided one.
438
-	 *
439
-	 * Resets the post's default values and stores it in the attributes.
440
-	 *
441
-	 * @param WP_Post $value
442
-	 *
443
-	 * @return $this
444
-	 */
445
-	private function override_wp_object( $value ) {
446
-		$this->attributes['object'] = $this->set_wp_object_constants( $value );
447
-
448
-		return $this;
449
-	}
450
-
451
-	/**
452
-	 * Create and set with a new blank post.
453
-	 *
454
-	 * Creates a new WP_Post object, assigns it the default attributes,
455
-	 * and stores it in the attributes.
456
-	 *
457
-	 * @throws LogicException
458
-	 */
459
-	private function create_wp_object() {
460
-		switch ( true ) {
461
-			case $this instanceof UsesWordPressPost:
462
-				$object = new WP_Post( (object) array() );
463
-				break;
464
-			case $this instanceof UsesWordPressTerm:
465
-				$object = new WP_Term( (object) array() );
466
-				break;
467
-			default:
468
-				throw new LogicException;
469
-				break;
470
-		}
471
-
472
-		$this->attributes['object'] = $this->set_wp_object_constants( $object );
473
-	}
474
-
475
-	/**
476
-	 * Enforces values on the post that can't change.
477
-	 *
478
-	 * Primarily, this is used to make sure the post_type always maps
479
-	 * to the model's "$type" property, but this can all be overridden
480
-	 * by the developer to enforce other values in the model.
481
-	 *
482
-	 * @param object $object
483
-	 *
484
-	 * @return object
485
-	 */
486
-	protected function set_wp_object_constants( $object ) {
487
-		if ( $this instanceof UsesWordPressPost ) {
488
-			$object->post_type = $this::get_post_type();
489
-		}
490
-
491
-		if ( $this instanceof UsesWordPressTerm ) {
492
-			$object->taxonomy = $this::get_taxonomy();
493
-		}
494
-
495
-		return $object;
496
-	}
497
-
498
-	/**
499
-	 * Magic __get method.
500
-	 *
501
-	 * Passes the name and value to get_attribute, which is where the magic happens.
502
-	 *
503
-	 * @param string $name
504
-	 *
505
-	 * @return mixed
506
-	 */
507
-	public function __get( $name ) {
508
-		return $this->get_attribute( $name );
509
-	}
510
-
511
-	/**
512
-	 * Retrieves the model attribute.
513
-	 *
514
-	 * @param string $name
515
-	 *
516
-	 * @return mixed
517
-	 *
518
-	 * @throws PropertyDoesNotExistException If property isn't found.
519
-	 */
520
-	public function get_attribute( $name ) {
521
-		if ( $method = $this->has_map_method( $name ) ) {
522
-			$value = $this->attributes['object']->{$this->{$method}()};
523
-		} elseif ( $method = $this->has_compute_method( $name ) ) {
524
-			$value = $this->{$method}();
525
-		} else {
526
-			if ( ! isset( $this->attributes['table'][ $name ] ) ) {
527
-				throw new PropertyDoesNotExistException;
528
-			}
529
-
530
-			$value = $this->attributes['table'][ $name ];
531
-		}
532
-
533
-		return $value;
534
-	}
535
-
536
-	/**
537
-	 * Retrieve the model's original attribute value.
538
-	 *
539
-	 * @param string $name
540
-	 *
541
-	 * @return mixed
542
-	 *
543
-	 * @throws PropertyDoesNotExistException If property isn't found.
544
-	 */
545
-	public function get_original_attribute( $name ) {
546
-		$original = new static( $this->original );
547
-
548
-		return $original->get_attribute( $name );
549
-	}
550
-
551
-	/**
552
-	 * Fetches the Model's primary ID, depending on the model
553
-	 * implementation.
554
-	 *
555
-	 * @return int
556
-	 *
557
-	 * @throws LogicException
558
-	 */
559
-	public function get_primary_id() {
560
-		if ( $this instanceof UsesWordPressPost ) {
561
-			return $this->get_underlying_wp_object()->ID;
562
-		}
563
-
564
-		if ( $this instanceof UsesWordPressTerm ) {
565
-			return $this->get_underlying_wp_object()->term_id;
566
-		}
567
-
568
-		// Model w/o wp_object not yet supported.
569
-		throw new LogicException;
570
-	}
571
-
572
-	/**
573
-	 * Checks whether the attribute has a map method.
574
-	 *
575
-	 * This is used to determine whether the attribute maps to a
576
-	 * property on the underlying WP_Post object. Returns the
577
-	 * method if one exists, returns false if it doesn't.
578
-	 *
579
-	 * @param string $name
580
-	 *
581
-	 * @return false|string
582
-	 */
583
-	protected function has_map_method( $name ) {
584
-		if ( method_exists( $this, $method = "map_{$name}" ) ) {
585
-			return $method;
586
-		}
587
-
588
-		return false;
589
-	}
590
-
591
-	/**
592
-	 * Checks whether the attribute has a compute method.
593
-	 *
594
-	 * This is used to determine if the attribute should be computed
595
-	 * from other attributes.
596
-	 *
597
-	 * @param string $name
598
-	 *
599
-	 * @return false|string
600
-	 */
601
-	protected function has_compute_method( $name ) {
602
-		if ( method_exists( $this, $method = "compute_{$name}" ) ) {
603
-			return $method;
604
-		}
605
-
606
-		return false;
607
-	}
608
-
609
-	/**
610
-	 * Clears all the current attributes from the model.
611
-	 *
612
-	 * This does not touch the model's original attributes, and will
613
-	 * only clear fillable attributes, unless the model is unguarded.
614
-	 *
615
-	 * @return $this
616
-	 */
617
-	public function clear() {
618
-		$keys = $this->get_attribute_keys();
619
-
620
-		foreach ( $keys as $key ) {
621
-			try {
622
-				$this->set_attribute( $key, null );
623
-			} catch ( GuardedPropertyException $e ) {
624
-				// We won't clear out guarded attributes.
625
-			}
626
-		}
627
-
628
-		return $this;
629
-	}
630
-
631
-	/**
632
-	 * Unguards the model.
633
-	 *
634
-	 * Sets the model to be unguarded, allowing the filling of
635
-	 * guarded attributes.
636
-	 */
637
-	public function unguard() {
638
-		$this->is_guarded = false;
639
-	}
640
-
641
-	/**
642
-	 * Reguards the model.
643
-	 *
644
-	 * Sets the model to be guarded, preventing filling of
645
-	 * guarded attributes.
646
-	 */
647
-	public function reguard() {
648
-		$this->is_guarded = true;
649
-	}
650
-
651
-	/**
652
-	 * Retrieves all the compute methods on the model.
653
-	 *
654
-	 * @return array
655
-	 */
656
-	protected function get_compute_methods() {
657
-		$methods = get_class_methods( get_called_class() );
658
-		$methods = array_filter( $methods, function ( $method ) {
659
-			return strrpos( $method, 'compute_', - strlen( $method ) ) !== false;
660
-		} );
661
-		$methods = array_map( function ( $method ) {
662
-			return substr( $method, strlen( 'compute_' ) );
663
-		}, $methods );
664
-
665
-		return $methods;
666
-	}
667
-
668
-	/**
669
-	 * Sets up the memo array for the creating model.
670
-	 */
671
-	private function maybe_boot() {
672
-		if ( ! isset( self::$memo[ get_called_class() ] ) ) {
673
-			self::$memo[ get_called_class() ] = array();
674
-		}
675
-	}
676
-
677
-	/**
678
-	 * Whether this Model uses an underlying WordPress object.
679
-	 *
680
-	 * @return bool
681
-	 */
682
-	protected function uses_wp_object() {
683
-		return $this instanceof UsesWordPressPost ||
684
-			$this instanceof UsesWordPressTerm;
685
-	}
23
+    /**
24
+     * Memoized values for class methods.
25
+     *
26
+     * @var array
27
+     */
28
+    private static $memo = array();
29
+
30
+    /**
31
+     * Model attributes.
32
+     *
33
+     * @var array
34
+     */
35
+    private $attributes = array(
36
+        'table' => array(),
37
+        'object'  => null,
38
+    );
39
+
40
+    /**
41
+     * Model's original attributes.
42
+     *
43
+     * @var array
44
+     */
45
+    private $original = array(
46
+        'table' => array(),
47
+        'object'  => null,
48
+    );
49
+
50
+    /**
51
+     * Properties which are allowed to be set on the model.
52
+     *
53
+     * If this array is empty, any attributes can be set on the model.
54
+     *
55
+     * @var string[]
56
+     */
57
+    protected $fillable = array();
58
+
59
+    /**
60
+     * Properties which cannot be automatically filled on the model.
61
+     *
62
+     * If the model is unguarded, these properties can be filled.
63
+     *
64
+     * @var array
65
+     */
66
+    protected $guarded = array();
67
+
68
+    /**
69
+     * Properties which should not be serialized.
70
+     *
71
+     * @var array
72
+     */
73
+    protected $hidden = array();
74
+
75
+    /**
76
+     * Properties which should be serialized.
77
+     *
78
+     * @var array
79
+     */
80
+    protected $visible = array();
81
+
82
+    /**
83
+     * Whether the model's properties are guarded.
84
+     *
85
+     * When false, allows guarded properties to be filled.
86
+     *
87
+     * @var bool
88
+     */
89
+    protected $is_guarded = true;
90
+
91
+    /**
92
+     * Constructs a new model with provided attributes.
93
+     *
94
+     * If 'object' is passed as one of the attributes, the underlying post
95
+     * will be overwritten.
96
+     *
97
+     * @param array <string, mixed> $attributes
98
+     */
99
+    public function __construct( array $attributes = array() ) {
100
+        $this->maybe_boot();
101
+        $this->sync_original();
102
+
103
+        if ( $this->uses_wp_object() ) {
104
+            $this->create_wp_object();
105
+        }
106
+
107
+        $this->refresh( $attributes );
108
+    }
109
+
110
+    /**
111
+     * Refreshes the model's current attributes with the provided array.
112
+     *
113
+     * The model's attributes will match what was provided in the array,
114
+     * and any attributes not passed
115
+     *
116
+     * @param array $attributes
117
+     *
118
+     * @return $this
119
+     */
120
+    public function refresh( array $attributes ) {
121
+        $this->clear();
122
+
123
+        return $this->merge( $attributes );
124
+    }
125
+
126
+    /**
127
+     * Merges the provided attributes with the provided array.
128
+     *
129
+     * @param array $attributes
130
+     *
131
+     * @return $this
132
+     */
133
+    public function merge( array $attributes ) {
134
+        foreach ( $attributes as $name => $value ) {
135
+            $this->set_attribute( $name, $value );
136
+        }
137
+
138
+        return $this;
139
+    }
140
+
141
+    /**
142
+     * Get the model's table attributes.
143
+     *
144
+     * Returns the array of for the model that will either need to be
145
+     * saved in postmeta or a separate table.
146
+     *
147
+     * @return array
148
+     */
149
+    public function get_table_attributes() {
150
+        return $this->attributes['table'];
151
+    }
152
+
153
+    /**
154
+     * Get the model's original attributes.
155
+     *
156
+     * @return array
157
+     */
158
+    public function get_original_table_attributes() {
159
+        return $this->original['table'];
160
+    }
161
+
162
+    /**
163
+     * Retrieve an array of the attributes on the model
164
+     * that have changed compared to the model's
165
+     * original data.
166
+     *
167
+     * @return array
168
+     */
169
+    public function get_changed_table_attributes() {
170
+        $changed = array();
171
+
172
+        foreach ( $this->get_table_attributes() as $attribute ) {
173
+            if ( $this->get_attribute( $attribute ) !==
174
+                    $this->get_original_attribute( $attribute )
175
+            ) {
176
+                $changed[ $attribute ] = $this->get_attribute( $attribute );
177
+            }
178
+        }
179
+
180
+        return $changed;
181
+    }
182
+
183
+    /**
184
+     * Get the model's underlying post.
185
+     *
186
+     * Returns the underlying WP_Post object for the model, representing
187
+     * the data that will be save in the wp_posts table.
188
+     *
189
+     * @return false|WP_Post|WP_Term
190
+     */
191
+    public function get_underlying_wp_object() {
192
+        if ( isset( $this->attributes['object'] ) ) {
193
+            return $this->attributes['object'];
194
+        }
195
+
196
+        return false;
197
+    }
198
+
199
+    /**
200
+     * Get the model's original underlying post.
201
+     *
202
+     * @return WP_Post
203
+     */
204
+    public function get_original_underlying_wp_object() {
205
+        return $this->original['object'];
206
+    }
207
+
208
+    /**
209
+     * Get the model attributes on the WordPress object
210
+     * that have changed compared to the model's
211
+     * original attributes.
212
+     *
213
+     * @return array
214
+     */
215
+    public function get_changed_wp_object_attributes() {
216
+        $changed = array();
217
+
218
+        foreach ( $this->get_wp_object_keys() as $key ) {
219
+            if ( $this->get_attribute( $key ) !==
220
+                    $this->get_original_attribute( $key )
221
+            ) {
222
+                $changed[ $key ] = $this->get_attribute( $key );
223
+            }
224
+        }
225
+
226
+        return $changed;
227
+    }
228
+
229
+    /**
230
+     * Magic __set method.
231
+     *
232
+     * Passes the name and value to set_attribute, which is where the magic happens.
233
+     *
234
+     * @param string $name
235
+     * @param mixed  $value
236
+     */
237
+    public function __set( $name, $value ) {
238
+        $this->set_attribute( $name, $value );
239
+    }
240
+
241
+    /**
242
+     * Sets the model attributes.
243
+     *
244
+     * Checks whether the model attribute can be set, check if it
245
+     * maps to the WP_Post property, otherwise, assigns it to the
246
+     * table attribute array.
247
+     *
248
+     * @param string $name
249
+     * @param mixed  $value
250
+     *
251
+     * @return $this
252
+     *
253
+     * @throws GuardedPropertyException
254
+     */
255
+    public function set_attribute( $name, $value ) {
256
+        if ( 'object' === $name ) {
257
+            return $this->override_wp_object( $value );
258
+        }
259
+
260
+        if ( ! $this->is_fillable( $name ) ) {
261
+            throw new GuardedPropertyException;
262
+        }
263
+
264
+        if ( $method = $this->has_map_method( $name ) ) {
265
+            $this->attributes['object']->{$this->{$method}()} = $value;
266
+        } else {
267
+            $this->attributes['table'][ $name ] = $value;
268
+        }
269
+
270
+        return $this;
271
+    }
272
+
273
+    /**
274
+     * Retrieves all the attribute keys for the model.
275
+     *
276
+     * @return array
277
+     */
278
+    public function get_attribute_keys() {
279
+        if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
280
+            return self::$memo[ get_called_class() ][ __METHOD__ ];
281
+        }
282
+
283
+        return self::$memo[ get_called_class() ][ __METHOD__ ]
284
+            = array_merge(
285
+                $this->fillable,
286
+                $this->guarded,
287
+                $this->get_compute_methods()
288
+            );
289
+    }
290
+
291
+    /**
292
+     * Retrieves the attribute keys that aren't mapped to a post.
293
+     *
294
+     * @return array
295
+     */
296
+    public function get_table_keys() {
297
+        if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
298
+            return self::$memo[ get_called_class() ][ __METHOD__ ];
299
+        }
300
+
301
+        $keys = array();
302
+
303
+        foreach ( $this->get_attribute_keys() as $key ) {
304
+            if ( ! $this->has_map_method( $key ) &&
305
+                 ! $this->has_compute_method( $key )
306
+            ) {
307
+                $keys[] = $key;
308
+            }
309
+        }
310
+
311
+        return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
312
+    }
313
+
314
+    /**
315
+     * Retrieves the attribute keys that are mapped to a post.
316
+     *
317
+     * @return array
318
+     */
319
+    public function get_wp_object_keys() {
320
+        if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
321
+            return self::$memo[ get_called_class() ][ __METHOD__ ];
322
+        }
323
+
324
+        $keys = array();
325
+
326
+        foreach ( $this->get_attribute_keys() as $key ) {
327
+            if ( $this->has_map_method( $key ) ) {
328
+                $keys[] = $key;
329
+            }
330
+        }
331
+
332
+        return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
333
+    }
334
+
335
+    /**
336
+     * Returns the model's keys that are computed at call time.
337
+     *
338
+     * @return array
339
+     */
340
+    public function get_computed_keys() {
341
+        if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
342
+            return self::$memo[ get_called_class() ][ __METHOD__ ];
343
+        }
344
+
345
+        $keys = array();
346
+
347
+        foreach ( $this->get_attribute_keys() as $key ) {
348
+            if ( $this->has_compute_method( $key ) ) {
349
+                $keys[] = $key;
350
+            }
351
+        }
352
+
353
+        return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
354
+    }
355
+
356
+    /**
357
+     * Serializes the model's public data into an array.
358
+     *
359
+     * @return array
360
+     */
361
+    public function serialize() {
362
+        $attributes = array();
363
+
364
+        if ( $this->visible ) {
365
+            // If visible attributes are set, we'll only reveal those.
366
+            foreach ( $this->visible as $key ) {
367
+                $attributes[ $key ] = $this->get_attribute( $key );
368
+            }
369
+        } elseif ( $this->hidden ) {
370
+            // If hidden attributes are set, we'll grab everything and hide those.
371
+            foreach ( $this->get_attribute_keys() as $key ) {
372
+                if ( ! in_array( $key, $this->hidden ) ) {
373
+                    $attributes[ $key ] = $this->get_attribute( $key );
374
+                }
375
+            }
376
+        } else {
377
+            // If nothing is hidden/visible, we'll grab and reveal everything.
378
+            foreach ( $this->get_attribute_keys() as $key ) {
379
+                $attributes[ $key ] = $this->get_attribute( $key );
380
+            }
381
+        }
382
+
383
+        return array_map( function ( $attribute ) {
384
+            if ( $attribute instanceof Serializes ) {
385
+                return $attribute->serialize();
386
+            }
387
+
388
+            return $attribute;
389
+        }, $attributes );
390
+    }
391
+
392
+    /**
393
+     * Syncs the current attributes to the model's original.
394
+     *
395
+     * @return $this
396
+     */
397
+    public function sync_original() {
398
+        $this->original = $this->attributes;
399
+
400
+        if ( $this->attributes['object'] ) {
401
+            $this->original['object'] = clone $this->attributes['object'];
402
+        }
403
+
404
+        return $this;
405
+    }
406
+
407
+    /**
408
+     * Checks if a given attribute is mass-fillable.
409
+     *
410
+     * Returns true if the attribute can be filled, false if it can't.
411
+     *
412
+     * @param string $name
413
+     *
414
+     * @return bool
415
+     */
416
+    private function is_fillable( $name ) {
417
+        // If this model isn't guarded, everything is fillable.
418
+        if ( ! $this->is_guarded ) {
419
+            return true;
420
+        }
421
+
422
+        // If it's in the fillable array, then it's fillable.
423
+        if ( in_array( $name, $this->fillable ) ) {
424
+            return true;
425
+        }
426
+
427
+        // If it's explicitly guarded, then it's not fillable.
428
+        if ( in_array( $name, $this->guarded ) ) {
429
+            return false;
430
+        }
431
+
432
+        // If fillable hasn't been defined, then everything else fillable.
433
+        return ! $this->fillable;
434
+    }
435
+
436
+    /**
437
+     * Overrides the current WP_Post with a provided one.
438
+     *
439
+     * Resets the post's default values and stores it in the attributes.
440
+     *
441
+     * @param WP_Post $value
442
+     *
443
+     * @return $this
444
+     */
445
+    private function override_wp_object( $value ) {
446
+        $this->attributes['object'] = $this->set_wp_object_constants( $value );
447
+
448
+        return $this;
449
+    }
450
+
451
+    /**
452
+     * Create and set with a new blank post.
453
+     *
454
+     * Creates a new WP_Post object, assigns it the default attributes,
455
+     * and stores it in the attributes.
456
+     *
457
+     * @throws LogicException
458
+     */
459
+    private function create_wp_object() {
460
+        switch ( true ) {
461
+            case $this instanceof UsesWordPressPost:
462
+                $object = new WP_Post( (object) array() );
463
+                break;
464
+            case $this instanceof UsesWordPressTerm:
465
+                $object = new WP_Term( (object) array() );
466
+                break;
467
+            default:
468
+                throw new LogicException;
469
+                break;
470
+        }
471
+
472
+        $this->attributes['object'] = $this->set_wp_object_constants( $object );
473
+    }
474
+
475
+    /**
476
+     * Enforces values on the post that can't change.
477
+     *
478
+     * Primarily, this is used to make sure the post_type always maps
479
+     * to the model's "$type" property, but this can all be overridden
480
+     * by the developer to enforce other values in the model.
481
+     *
482
+     * @param object $object
483
+     *
484
+     * @return object
485
+     */
486
+    protected function set_wp_object_constants( $object ) {
487
+        if ( $this instanceof UsesWordPressPost ) {
488
+            $object->post_type = $this::get_post_type();
489
+        }
490
+
491
+        if ( $this instanceof UsesWordPressTerm ) {
492
+            $object->taxonomy = $this::get_taxonomy();
493
+        }
494
+
495
+        return $object;
496
+    }
497
+
498
+    /**
499
+     * Magic __get method.
500
+     *
501
+     * Passes the name and value to get_attribute, which is where the magic happens.
502
+     *
503
+     * @param string $name
504
+     *
505
+     * @return mixed
506
+     */
507
+    public function __get( $name ) {
508
+        return $this->get_attribute( $name );
509
+    }
510
+
511
+    /**
512
+     * Retrieves the model attribute.
513
+     *
514
+     * @param string $name
515
+     *
516
+     * @return mixed
517
+     *
518
+     * @throws PropertyDoesNotExistException If property isn't found.
519
+     */
520
+    public function get_attribute( $name ) {
521
+        if ( $method = $this->has_map_method( $name ) ) {
522
+            $value = $this->attributes['object']->{$this->{$method}()};
523
+        } elseif ( $method = $this->has_compute_method( $name ) ) {
524
+            $value = $this->{$method}();
525
+        } else {
526
+            if ( ! isset( $this->attributes['table'][ $name ] ) ) {
527
+                throw new PropertyDoesNotExistException;
528
+            }
529
+
530
+            $value = $this->attributes['table'][ $name ];
531
+        }
532
+
533
+        return $value;
534
+    }
535
+
536
+    /**
537
+     * Retrieve the model's original attribute value.
538
+     *
539
+     * @param string $name
540
+     *
541
+     * @return mixed
542
+     *
543
+     * @throws PropertyDoesNotExistException If property isn't found.
544
+     */
545
+    public function get_original_attribute( $name ) {
546
+        $original = new static( $this->original );
547
+
548
+        return $original->get_attribute( $name );
549
+    }
550
+
551
+    /**
552
+     * Fetches the Model's primary ID, depending on the model
553
+     * implementation.
554
+     *
555
+     * @return int
556
+     *
557
+     * @throws LogicException
558
+     */
559
+    public function get_primary_id() {
560
+        if ( $this instanceof UsesWordPressPost ) {
561
+            return $this->get_underlying_wp_object()->ID;
562
+        }
563
+
564
+        if ( $this instanceof UsesWordPressTerm ) {
565
+            return $this->get_underlying_wp_object()->term_id;
566
+        }
567
+
568
+        // Model w/o wp_object not yet supported.
569
+        throw new LogicException;
570
+    }
571
+
572
+    /**
573
+     * Checks whether the attribute has a map method.
574
+     *
575
+     * This is used to determine whether the attribute maps to a
576
+     * property on the underlying WP_Post object. Returns the
577
+     * method if one exists, returns false if it doesn't.
578
+     *
579
+     * @param string $name
580
+     *
581
+     * @return false|string
582
+     */
583
+    protected function has_map_method( $name ) {
584
+        if ( method_exists( $this, $method = "map_{$name}" ) ) {
585
+            return $method;
586
+        }
587
+
588
+        return false;
589
+    }
590
+
591
+    /**
592
+     * Checks whether the attribute has a compute method.
593
+     *
594
+     * This is used to determine if the attribute should be computed
595
+     * from other attributes.
596
+     *
597
+     * @param string $name
598
+     *
599
+     * @return false|string
600
+     */
601
+    protected function has_compute_method( $name ) {
602
+        if ( method_exists( $this, $method = "compute_{$name}" ) ) {
603
+            return $method;
604
+        }
605
+
606
+        return false;
607
+    }
608
+
609
+    /**
610
+     * Clears all the current attributes from the model.
611
+     *
612
+     * This does not touch the model's original attributes, and will
613
+     * only clear fillable attributes, unless the model is unguarded.
614
+     *
615
+     * @return $this
616
+     */
617
+    public function clear() {
618
+        $keys = $this->get_attribute_keys();
619
+
620
+        foreach ( $keys as $key ) {
621
+            try {
622
+                $this->set_attribute( $key, null );
623
+            } catch ( GuardedPropertyException $e ) {
624
+                // We won't clear out guarded attributes.
625
+            }
626
+        }
627
+
628
+        return $this;
629
+    }
630
+
631
+    /**
632
+     * Unguards the model.
633
+     *
634
+     * Sets the model to be unguarded, allowing the filling of
635
+     * guarded attributes.
636
+     */
637
+    public function unguard() {
638
+        $this->is_guarded = false;
639
+    }
640
+
641
+    /**
642
+     * Reguards the model.
643
+     *
644
+     * Sets the model to be guarded, preventing filling of
645
+     * guarded attributes.
646
+     */
647
+    public function reguard() {
648
+        $this->is_guarded = true;
649
+    }
650
+
651
+    /**
652
+     * Retrieves all the compute methods on the model.
653
+     *
654
+     * @return array
655
+     */
656
+    protected function get_compute_methods() {
657
+        $methods = get_class_methods( get_called_class() );
658
+        $methods = array_filter( $methods, function ( $method ) {
659
+            return strrpos( $method, 'compute_', - strlen( $method ) ) !== false;
660
+        } );
661
+        $methods = array_map( function ( $method ) {
662
+            return substr( $method, strlen( 'compute_' ) );
663
+        }, $methods );
664
+
665
+        return $methods;
666
+    }
667
+
668
+    /**
669
+     * Sets up the memo array for the creating model.
670
+     */
671
+    private function maybe_boot() {
672
+        if ( ! isset( self::$memo[ get_called_class() ] ) ) {
673
+            self::$memo[ get_called_class() ] = array();
674
+        }
675
+    }
676
+
677
+    /**
678
+     * Whether this Model uses an underlying WordPress object.
679
+     *
680
+     * @return bool
681
+     */
682
+    protected function uses_wp_object() {
683
+        return $this instanceof UsesWordPressPost ||
684
+            $this instanceof UsesWordPressTerm;
685
+    }
686 686
 }
Please login to merge, or discard this patch.
Spacing   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -96,15 +96,15 @@  discard block
 block discarded – undo
96 96
 	 *
97 97
 	 * @param array <string, mixed> $attributes
98 98
 	 */
99
-	public function __construct( array $attributes = array() ) {
99
+	public function __construct(array $attributes = array()) {
100 100
 		$this->maybe_boot();
101 101
 		$this->sync_original();
102 102
 
103
-		if ( $this->uses_wp_object() ) {
103
+		if ($this->uses_wp_object()) {
104 104
 			$this->create_wp_object();
105 105
 		}
106 106
 
107
-		$this->refresh( $attributes );
107
+		$this->refresh($attributes);
108 108
 	}
109 109
 
110 110
 	/**
@@ -117,10 +117,10 @@  discard block
 block discarded – undo
117 117
 	 *
118 118
 	 * @return $this
119 119
 	 */
120
-	public function refresh( array $attributes ) {
120
+	public function refresh(array $attributes) {
121 121
 		$this->clear();
122 122
 
123
-		return $this->merge( $attributes );
123
+		return $this->merge($attributes);
124 124
 	}
125 125
 
126 126
 	/**
@@ -130,9 +130,9 @@  discard block
 block discarded – undo
130 130
 	 *
131 131
 	 * @return $this
132 132
 	 */
133
-	public function merge( array $attributes ) {
134
-		foreach ( $attributes as $name => $value ) {
135
-			$this->set_attribute( $name, $value );
133
+	public function merge(array $attributes) {
134
+		foreach ($attributes as $name => $value) {
135
+			$this->set_attribute($name, $value);
136 136
 		}
137 137
 
138 138
 		return $this;
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
 	public function get_changed_table_attributes() {
170 170
 		$changed = array();
171 171
 
172
-		foreach ( $this->get_table_attributes() as $attribute ) {
173
-			if ( $this->get_attribute( $attribute ) !==
174
-			     $this->get_original_attribute( $attribute )
172
+		foreach ($this->get_table_attributes() as $attribute) {
173
+			if ($this->get_attribute($attribute) !==
174
+			     $this->get_original_attribute($attribute)
175 175
 			) {
176
-				$changed[ $attribute ] = $this->get_attribute( $attribute );
176
+				$changed[$attribute] = $this->get_attribute($attribute);
177 177
 			}
178 178
 		}
179 179
 
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
 	 * @return false|WP_Post|WP_Term
190 190
 	 */
191 191
 	public function get_underlying_wp_object() {
192
-		if ( isset( $this->attributes['object'] ) ) {
192
+		if (isset($this->attributes['object'])) {
193 193
 			return $this->attributes['object'];
194 194
 		}
195 195
 
@@ -215,11 +215,11 @@  discard block
 block discarded – undo
215 215
 	public function get_changed_wp_object_attributes() {
216 216
 		$changed = array();
217 217
 
218
-		foreach ( $this->get_wp_object_keys() as $key ) {
219
-			if ( $this->get_attribute( $key ) !==
220
-			     $this->get_original_attribute( $key )
218
+		foreach ($this->get_wp_object_keys() as $key) {
219
+			if ($this->get_attribute($key) !==
220
+			     $this->get_original_attribute($key)
221 221
 			) {
222
-				$changed[ $key ] = $this->get_attribute( $key );
222
+				$changed[$key] = $this->get_attribute($key);
223 223
 			}
224 224
 		}
225 225
 
@@ -234,8 +234,8 @@  discard block
 block discarded – undo
234 234
 	 * @param string $name
235 235
 	 * @param mixed  $value
236 236
 	 */
237
-	public function __set( $name, $value ) {
238
-		$this->set_attribute( $name, $value );
237
+	public function __set($name, $value) {
238
+		$this->set_attribute($name, $value);
239 239
 	}
240 240
 
241 241
 	/**
@@ -252,19 +252,19 @@  discard block
 block discarded – undo
252 252
 	 *
253 253
 	 * @throws GuardedPropertyException
254 254
 	 */
255
-	public function set_attribute( $name, $value ) {
256
-		if ( 'object' === $name ) {
257
-			return $this->override_wp_object( $value );
255
+	public function set_attribute($name, $value) {
256
+		if ('object' === $name) {
257
+			return $this->override_wp_object($value);
258 258
 		}
259 259
 
260
-		if ( ! $this->is_fillable( $name ) ) {
260
+		if (!$this->is_fillable($name)) {
261 261
 			throw new GuardedPropertyException;
262 262
 		}
263 263
 
264
-		if ( $method = $this->has_map_method( $name ) ) {
264
+		if ($method = $this->has_map_method($name)) {
265 265
 			$this->attributes['object']->{$this->{$method}()} = $value;
266 266
 		} else {
267
-			$this->attributes['table'][ $name ] = $value;
267
+			$this->attributes['table'][$name] = $value;
268 268
 		}
269 269
 
270 270
 		return $this;
@@ -276,11 +276,11 @@  discard block
 block discarded – undo
276 276
 	 * @return array
277 277
 	 */
278 278
 	public function get_attribute_keys() {
279
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
280
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
279
+		if (isset(self::$memo[get_called_class()][__METHOD__])) {
280
+			return self::$memo[get_called_class()][__METHOD__];
281 281
 		}
282 282
 
283
-		return self::$memo[ get_called_class() ][ __METHOD__ ]
283
+		return self::$memo[get_called_class()][__METHOD__]
284 284
 			= array_merge(
285 285
 				$this->fillable,
286 286
 				$this->guarded,
@@ -294,21 +294,21 @@  discard block
 block discarded – undo
294 294
 	 * @return array
295 295
 	 */
296 296
 	public function get_table_keys() {
297
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
298
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
297
+		if (isset(self::$memo[get_called_class()][__METHOD__])) {
298
+			return self::$memo[get_called_class()][__METHOD__];
299 299
 		}
300 300
 
301 301
 		$keys = array();
302 302
 
303
-		foreach ( $this->get_attribute_keys() as $key ) {
304
-			if ( ! $this->has_map_method( $key ) &&
305
-			     ! $this->has_compute_method( $key )
303
+		foreach ($this->get_attribute_keys() as $key) {
304
+			if (!$this->has_map_method($key) &&
305
+			     !$this->has_compute_method($key)
306 306
 			) {
307 307
 				$keys[] = $key;
308 308
 			}
309 309
 		}
310 310
 
311
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
311
+		return self::$memo[get_called_class()][__METHOD__] = $keys;
312 312
 	}
313 313
 
314 314
 	/**
@@ -317,19 +317,19 @@  discard block
 block discarded – undo
317 317
 	 * @return array
318 318
 	 */
319 319
 	public function get_wp_object_keys() {
320
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
321
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
320
+		if (isset(self::$memo[get_called_class()][__METHOD__])) {
321
+			return self::$memo[get_called_class()][__METHOD__];
322 322
 		}
323 323
 
324 324
 		$keys = array();
325 325
 
326
-		foreach ( $this->get_attribute_keys() as $key ) {
327
-			if ( $this->has_map_method( $key ) ) {
326
+		foreach ($this->get_attribute_keys() as $key) {
327
+			if ($this->has_map_method($key)) {
328 328
 				$keys[] = $key;
329 329
 			}
330 330
 		}
331 331
 
332
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
332
+		return self::$memo[get_called_class()][__METHOD__] = $keys;
333 333
 	}
334 334
 
335 335
 	/**
@@ -338,19 +338,19 @@  discard block
 block discarded – undo
338 338
 	 * @return array
339 339
 	 */
340 340
 	public function get_computed_keys() {
341
-		if ( isset( self::$memo[ get_called_class() ][ __METHOD__ ] ) ) {
342
-			return self::$memo[ get_called_class() ][ __METHOD__ ];
341
+		if (isset(self::$memo[get_called_class()][__METHOD__])) {
342
+			return self::$memo[get_called_class()][__METHOD__];
343 343
 		}
344 344
 
345 345
 		$keys = array();
346 346
 
347
-		foreach ( $this->get_attribute_keys() as $key ) {
348
-			if ( $this->has_compute_method( $key ) ) {
347
+		foreach ($this->get_attribute_keys() as $key) {
348
+			if ($this->has_compute_method($key)) {
349 349
 				$keys[] = $key;
350 350
 			}
351 351
 		}
352 352
 
353
-		return self::$memo[ get_called_class() ][ __METHOD__ ] = $keys;
353
+		return self::$memo[get_called_class()][__METHOD__] = $keys;
354 354
 	}
355 355
 
356 356
 	/**
@@ -361,32 +361,32 @@  discard block
 block discarded – undo
361 361
 	public function serialize() {
362 362
 		$attributes = array();
363 363
 
364
-		if ( $this->visible ) {
364
+		if ($this->visible) {
365 365
 			// If visible attributes are set, we'll only reveal those.
366
-			foreach ( $this->visible as $key ) {
367
-				$attributes[ $key ] = $this->get_attribute( $key );
366
+			foreach ($this->visible as $key) {
367
+				$attributes[$key] = $this->get_attribute($key);
368 368
 			}
369
-		} elseif ( $this->hidden ) {
369
+		} elseif ($this->hidden) {
370 370
 			// If hidden attributes are set, we'll grab everything and hide those.
371
-			foreach ( $this->get_attribute_keys() as $key ) {
372
-				if ( ! in_array( $key, $this->hidden ) ) {
373
-					$attributes[ $key ] = $this->get_attribute( $key );
371
+			foreach ($this->get_attribute_keys() as $key) {
372
+				if (!in_array($key, $this->hidden)) {
373
+					$attributes[$key] = $this->get_attribute($key);
374 374
 				}
375 375
 			}
376 376
 		} else {
377 377
 			// If nothing is hidden/visible, we'll grab and reveal everything.
378
-			foreach ( $this->get_attribute_keys() as $key ) {
379
-				$attributes[ $key ] = $this->get_attribute( $key );
378
+			foreach ($this->get_attribute_keys() as $key) {
379
+				$attributes[$key] = $this->get_attribute($key);
380 380
 			}
381 381
 		}
382 382
 
383
-		return array_map( function ( $attribute ) {
384
-			if ( $attribute instanceof Serializes ) {
383
+		return array_map(function($attribute) {
384
+			if ($attribute instanceof Serializes) {
385 385
 				return $attribute->serialize();
386 386
 			}
387 387
 
388 388
 			return $attribute;
389
-		}, $attributes );
389
+		}, $attributes);
390 390
 	}
391 391
 
392 392
 	/**
@@ -397,7 +397,7 @@  discard block
 block discarded – undo
397 397
 	public function sync_original() {
398 398
 		$this->original = $this->attributes;
399 399
 
400
-		if ( $this->attributes['object'] ) {
400
+		if ($this->attributes['object']) {
401 401
 			$this->original['object'] = clone $this->attributes['object'];
402 402
 		}
403 403
 
@@ -413,24 +413,24 @@  discard block
 block discarded – undo
413 413
 	 *
414 414
 	 * @return bool
415 415
 	 */
416
-	private function is_fillable( $name ) {
416
+	private function is_fillable($name) {
417 417
 		// If this model isn't guarded, everything is fillable.
418
-		if ( ! $this->is_guarded ) {
418
+		if (!$this->is_guarded) {
419 419
 			return true;
420 420
 		}
421 421
 
422 422
 		// If it's in the fillable array, then it's fillable.
423
-		if ( in_array( $name, $this->fillable ) ) {
423
+		if (in_array($name, $this->fillable)) {
424 424
 			return true;
425 425
 		}
426 426
 
427 427
 		// If it's explicitly guarded, then it's not fillable.
428
-		if ( in_array( $name, $this->guarded ) ) {
428
+		if (in_array($name, $this->guarded)) {
429 429
 			return false;
430 430
 		}
431 431
 
432 432
 		// If fillable hasn't been defined, then everything else fillable.
433
-		return ! $this->fillable;
433
+		return !$this->fillable;
434 434
 	}
435 435
 
436 436
 	/**
@@ -442,8 +442,8 @@  discard block
 block discarded – undo
442 442
 	 *
443 443
 	 * @return $this
444 444
 	 */
445
-	private function override_wp_object( $value ) {
446
-		$this->attributes['object'] = $this->set_wp_object_constants( $value );
445
+	private function override_wp_object($value) {
446
+		$this->attributes['object'] = $this->set_wp_object_constants($value);
447 447
 
448 448
 		return $this;
449 449
 	}
@@ -457,19 +457,19 @@  discard block
 block discarded – undo
457 457
 	 * @throws LogicException
458 458
 	 */
459 459
 	private function create_wp_object() {
460
-		switch ( true ) {
460
+		switch (true) {
461 461
 			case $this instanceof UsesWordPressPost:
462
-				$object = new WP_Post( (object) array() );
462
+				$object = new WP_Post((object) array());
463 463
 				break;
464 464
 			case $this instanceof UsesWordPressTerm:
465
-				$object = new WP_Term( (object) array() );
465
+				$object = new WP_Term((object) array());
466 466
 				break;
467 467
 			default:
468 468
 				throw new LogicException;
469 469
 				break;
470 470
 		}
471 471
 
472
-		$this->attributes['object'] = $this->set_wp_object_constants( $object );
472
+		$this->attributes['object'] = $this->set_wp_object_constants($object);
473 473
 	}
474 474
 
475 475
 	/**
@@ -483,12 +483,12 @@  discard block
 block discarded – undo
483 483
 	 *
484 484
 	 * @return object
485 485
 	 */
486
-	protected function set_wp_object_constants( $object ) {
487
-		if ( $this instanceof UsesWordPressPost ) {
486
+	protected function set_wp_object_constants($object) {
487
+		if ($this instanceof UsesWordPressPost) {
488 488
 			$object->post_type = $this::get_post_type();
489 489
 		}
490 490
 
491
-		if ( $this instanceof UsesWordPressTerm ) {
491
+		if ($this instanceof UsesWordPressTerm) {
492 492
 			$object->taxonomy = $this::get_taxonomy();
493 493
 		}
494 494
 
@@ -504,8 +504,8 @@  discard block
 block discarded – undo
504 504
 	 *
505 505
 	 * @return mixed
506 506
 	 */
507
-	public function __get( $name ) {
508
-		return $this->get_attribute( $name );
507
+	public function __get($name) {
508
+		return $this->get_attribute($name);
509 509
 	}
510 510
 
511 511
 	/**
@@ -517,17 +517,17 @@  discard block
 block discarded – undo
517 517
 	 *
518 518
 	 * @throws PropertyDoesNotExistException If property isn't found.
519 519
 	 */
520
-	public function get_attribute( $name ) {
521
-		if ( $method = $this->has_map_method( $name ) ) {
520
+	public function get_attribute($name) {
521
+		if ($method = $this->has_map_method($name)) {
522 522
 			$value = $this->attributes['object']->{$this->{$method}()};
523
-		} elseif ( $method = $this->has_compute_method( $name ) ) {
523
+		} elseif ($method = $this->has_compute_method($name)) {
524 524
 			$value = $this->{$method}();
525 525
 		} else {
526
-			if ( ! isset( $this->attributes['table'][ $name ] ) ) {
526
+			if (!isset($this->attributes['table'][$name])) {
527 527
 				throw new PropertyDoesNotExistException;
528 528
 			}
529 529
 
530
-			$value = $this->attributes['table'][ $name ];
530
+			$value = $this->attributes['table'][$name];
531 531
 		}
532 532
 
533 533
 		return $value;
@@ -542,10 +542,10 @@  discard block
 block discarded – undo
542 542
 	 *
543 543
 	 * @throws PropertyDoesNotExistException If property isn't found.
544 544
 	 */
545
-	public function get_original_attribute( $name ) {
546
-		$original = new static( $this->original );
545
+	public function get_original_attribute($name) {
546
+		$original = new static($this->original);
547 547
 
548
-		return $original->get_attribute( $name );
548
+		return $original->get_attribute($name);
549 549
 	}
550 550
 
551 551
 	/**
@@ -557,11 +557,11 @@  discard block
 block discarded – undo
557 557
 	 * @throws LogicException
558 558
 	 */
559 559
 	public function get_primary_id() {
560
-		if ( $this instanceof UsesWordPressPost ) {
560
+		if ($this instanceof UsesWordPressPost) {
561 561
 			return $this->get_underlying_wp_object()->ID;
562 562
 		}
563 563
 
564
-		if ( $this instanceof UsesWordPressTerm ) {
564
+		if ($this instanceof UsesWordPressTerm) {
565 565
 			return $this->get_underlying_wp_object()->term_id;
566 566
 		}
567 567
 
@@ -580,8 +580,8 @@  discard block
 block discarded – undo
580 580
 	 *
581 581
 	 * @return false|string
582 582
 	 */
583
-	protected function has_map_method( $name ) {
584
-		if ( method_exists( $this, $method = "map_{$name}" ) ) {
583
+	protected function has_map_method($name) {
584
+		if (method_exists($this, $method = "map_{$name}")) {
585 585
 			return $method;
586 586
 		}
587 587
 
@@ -598,8 +598,8 @@  discard block
 block discarded – undo
598 598
 	 *
599 599
 	 * @return false|string
600 600
 	 */
601
-	protected function has_compute_method( $name ) {
602
-		if ( method_exists( $this, $method = "compute_{$name}" ) ) {
601
+	protected function has_compute_method($name) {
602
+		if (method_exists($this, $method = "compute_{$name}")) {
603 603
 			return $method;
604 604
 		}
605 605
 
@@ -617,10 +617,10 @@  discard block
 block discarded – undo
617 617
 	public function clear() {
618 618
 		$keys = $this->get_attribute_keys();
619 619
 
620
-		foreach ( $keys as $key ) {
620
+		foreach ($keys as $key) {
621 621
 			try {
622
-				$this->set_attribute( $key, null );
623
-			} catch ( GuardedPropertyException $e ) {
622
+				$this->set_attribute($key, null);
623
+			} catch (GuardedPropertyException $e) {
624 624
 				// We won't clear out guarded attributes.
625 625
 			}
626 626
 		}
@@ -654,13 +654,13 @@  discard block
 block discarded – undo
654 654
 	 * @return array
655 655
 	 */
656 656
 	protected function get_compute_methods() {
657
-		$methods = get_class_methods( get_called_class() );
658
-		$methods = array_filter( $methods, function ( $method ) {
659
-			return strrpos( $method, 'compute_', - strlen( $method ) ) !== false;
657
+		$methods = get_class_methods(get_called_class());
658
+		$methods = array_filter($methods, function($method) {
659
+			return strrpos($method, 'compute_', - strlen($method)) !== false;
660 660
 		} );
661
-		$methods = array_map( function ( $method ) {
662
-			return substr( $method, strlen( 'compute_' ) );
663
-		}, $methods );
661
+		$methods = array_map(function($method) {
662
+			return substr($method, strlen('compute_'));
663
+		}, $methods);
664 664
 
665 665
 		return $methods;
666 666
 	}
@@ -669,8 +669,8 @@  discard block
 block discarded – undo
669 669
 	 * Sets up the memo array for the creating model.
670 670
 	 */
671 671
 	private function maybe_boot() {
672
-		if ( ! isset( self::$memo[ get_called_class() ] ) ) {
673
-			self::$memo[ get_called_class() ] = array();
672
+		if (!isset(self::$memo[get_called_class()])) {
673
+			self::$memo[get_called_class()] = array();
674 674
 		}
675 675
 	}
676 676
 
Please login to merge, or discard this patch.