Completed
Branch fix-message-active-toggle (c2556b)
by
unknown
36:41 queued 26:55
created
core/domain/entities/GenericAddress.php 1 patch
Indentation   +201 added lines, -201 removed lines patch added patch discarded remove patch
@@ -12,205 +12,205 @@
 block discarded – undo
12 12
  */
13 13
 class GenericAddress implements \EEI_Address
14 14
 {
15
-    // phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
16
-    private $_address = '';
17
-
18
-    private $_address2 = '';
19
-
20
-    private $_city = '';
21
-
22
-    private $_state_ID = '';
23
-
24
-    private $_state_obj = '';
25
-
26
-    private $_zip = '';
27
-
28
-    private $_country_ID = '';
29
-
30
-    private $_country_obj = '';
31
-    // phpcs:enable
32
-
33
-    // phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
34
-    /**
35
-     * @param string               $address
36
-     * @param string               $address2
37
-     * @param string               $city
38
-     * @param \EE_State | string   $state
39
-     * @param string               $zip
40
-     * @param \EE_Country | string $country
41
-     * @return GenericAddress
42
-     */
43
-    public function __construct($address, $address2, $city, $state, $zip, $country)
44
-    {
45
-        $this->_address = $address;
46
-        $this->_address2 = $address2;
47
-        $this->_city = $city;
48
-        if ($state instanceof \EE_State) {
49
-            $this->_state_obj = $state;
50
-        } else {
51
-            $this->_state_ID = $state;
52
-            $this->_state_obj = $this->_get_state_obj();
53
-        }
54
-        $this->_zip = $zip;
55
-        if ($country instanceof \EE_Country) {
56
-            $this->_country_obj = $country;
57
-        } else {
58
-            $this->_country_ID = $country;
59
-            $this->_country_obj = $this->_get_country_obj();
60
-        }
61
-    }
62
-
63
-
64
-    /**
65
-     * @return string
66
-     */
67
-    public function address()
68
-    {
69
-        return $this->_address;
70
-    }
71
-
72
-
73
-    /**
74
-     * @return string
75
-     */
76
-    public function address2()
77
-    {
78
-        return $this->_address2;
79
-    }
80
-
81
-
82
-    /**
83
-     * @return string
84
-     */
85
-    public function city()
86
-    {
87
-        return $this->_city;
88
-    }
89
-
90
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
91
-
92
-    /**
93
-     * @return \EE_State
94
-     */
95
-    private function _get_state_obj()
96
-    {
97
-        return $this->_state_obj instanceof \EE_State
98
-            ? $this->_state_obj
99
-            : \EE_Registry::instance()->load_model('State')->get_one_by_ID($this->_state_ID);
100
-    }
101
-
102
-
103
-    /**
104
-     * @return string
105
-     */
106
-    public function state_ID()
107
-    {
108
-        return $this->_state_ID;
109
-    }
110
-
111
-
112
-    /**
113
-     * @return string
114
-     */
115
-    public function state_abbrev()
116
-    {
117
-        return $this->state_obj() instanceof \EE_State
118
-            ? $this->state_obj()->abbrev()
119
-            : '';
120
-    }
121
-
122
-
123
-    /**
124
-     * @return string
125
-     */
126
-    public function state_name()
127
-    {
128
-        return $this->state_obj() instanceof \EE_State
129
-            ? $this->state_obj()->name()
130
-            : '';
131
-    }
132
-
133
-
134
-    /**
135
-     * @return \EE_State
136
-     */
137
-    public function state_obj()
138
-    {
139
-        return $this->_state_obj;
140
-    }
141
-
142
-
143
-    /**
144
-     * @return string
145
-     */
146
-    public function state()
147
-    {
148
-        if (apply_filters('FHEE__EEI_Address__state__use_abbreviation', true, $this->state_obj())) {
149
-            return $this->state_obj()->abbrev();
150
-        } else {
151
-            return $this->state_name();
152
-        }
153
-    }
154
-
155
-
156
-    /**
157
-     * @return \EE_Country
158
-     */
159
-    private function _get_country_obj()
160
-    {
161
-        return $this->_country_obj instanceof \EE_Country
162
-            ? $this->_country_obj
163
-            : \EE_Registry::instance()->load_model('Country')->get_one_by_ID($this->_country_ID);
164
-    }
165
-
166
-
167
-    /**
168
-     * @return string
169
-     */
170
-    public function country_ID()
171
-    {
172
-        return $this->_country_ID;
173
-    }
174
-
175
-
176
-    /**
177
-     * @return string
178
-     */
179
-    public function country_name()
180
-    {
181
-        return $this->country_obj() instanceof \EE_Country
182
-            ? $this->country_obj()->name()
183
-            : '';
184
-    }
185
-
186
-
187
-    /**
188
-     * @return \EE_Country
189
-     */
190
-    public function country_obj()
191
-    {
192
-        return $this->_country_obj;
193
-    }
194
-
195
-
196
-    /**
197
-     * @return string
198
-     */
199
-    public function country()
200
-    {
201
-        if (apply_filters('FHEE__EEI_Address__country__use_abbreviation', true, $this->country_obj())) {
202
-            return $this->country_ID();
203
-        } else {
204
-            return $this->country_name();
205
-        }
206
-    }
207
-
208
-
209
-    /**
210
-     * @return string
211
-     */
212
-    public function zip()
213
-    {
214
-        return $this->_zip;
215
-    }
15
+	// phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore
16
+	private $_address = '';
17
+
18
+	private $_address2 = '';
19
+
20
+	private $_city = '';
21
+
22
+	private $_state_ID = '';
23
+
24
+	private $_state_obj = '';
25
+
26
+	private $_zip = '';
27
+
28
+	private $_country_ID = '';
29
+
30
+	private $_country_obj = '';
31
+	// phpcs:enable
32
+
33
+	// phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
34
+	/**
35
+	 * @param string               $address
36
+	 * @param string               $address2
37
+	 * @param string               $city
38
+	 * @param \EE_State | string   $state
39
+	 * @param string               $zip
40
+	 * @param \EE_Country | string $country
41
+	 * @return GenericAddress
42
+	 */
43
+	public function __construct($address, $address2, $city, $state, $zip, $country)
44
+	{
45
+		$this->_address = $address;
46
+		$this->_address2 = $address2;
47
+		$this->_city = $city;
48
+		if ($state instanceof \EE_State) {
49
+			$this->_state_obj = $state;
50
+		} else {
51
+			$this->_state_ID = $state;
52
+			$this->_state_obj = $this->_get_state_obj();
53
+		}
54
+		$this->_zip = $zip;
55
+		if ($country instanceof \EE_Country) {
56
+			$this->_country_obj = $country;
57
+		} else {
58
+			$this->_country_ID = $country;
59
+			$this->_country_obj = $this->_get_country_obj();
60
+		}
61
+	}
62
+
63
+
64
+	/**
65
+	 * @return string
66
+	 */
67
+	public function address()
68
+	{
69
+		return $this->_address;
70
+	}
71
+
72
+
73
+	/**
74
+	 * @return string
75
+	 */
76
+	public function address2()
77
+	{
78
+		return $this->_address2;
79
+	}
80
+
81
+
82
+	/**
83
+	 * @return string
84
+	 */
85
+	public function city()
86
+	{
87
+		return $this->_city;
88
+	}
89
+
90
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
91
+
92
+	/**
93
+	 * @return \EE_State
94
+	 */
95
+	private function _get_state_obj()
96
+	{
97
+		return $this->_state_obj instanceof \EE_State
98
+			? $this->_state_obj
99
+			: \EE_Registry::instance()->load_model('State')->get_one_by_ID($this->_state_ID);
100
+	}
101
+
102
+
103
+	/**
104
+	 * @return string
105
+	 */
106
+	public function state_ID()
107
+	{
108
+		return $this->_state_ID;
109
+	}
110
+
111
+
112
+	/**
113
+	 * @return string
114
+	 */
115
+	public function state_abbrev()
116
+	{
117
+		return $this->state_obj() instanceof \EE_State
118
+			? $this->state_obj()->abbrev()
119
+			: '';
120
+	}
121
+
122
+
123
+	/**
124
+	 * @return string
125
+	 */
126
+	public function state_name()
127
+	{
128
+		return $this->state_obj() instanceof \EE_State
129
+			? $this->state_obj()->name()
130
+			: '';
131
+	}
132
+
133
+
134
+	/**
135
+	 * @return \EE_State
136
+	 */
137
+	public function state_obj()
138
+	{
139
+		return $this->_state_obj;
140
+	}
141
+
142
+
143
+	/**
144
+	 * @return string
145
+	 */
146
+	public function state()
147
+	{
148
+		if (apply_filters('FHEE__EEI_Address__state__use_abbreviation', true, $this->state_obj())) {
149
+			return $this->state_obj()->abbrev();
150
+		} else {
151
+			return $this->state_name();
152
+		}
153
+	}
154
+
155
+
156
+	/**
157
+	 * @return \EE_Country
158
+	 */
159
+	private function _get_country_obj()
160
+	{
161
+		return $this->_country_obj instanceof \EE_Country
162
+			? $this->_country_obj
163
+			: \EE_Registry::instance()->load_model('Country')->get_one_by_ID($this->_country_ID);
164
+	}
165
+
166
+
167
+	/**
168
+	 * @return string
169
+	 */
170
+	public function country_ID()
171
+	{
172
+		return $this->_country_ID;
173
+	}
174
+
175
+
176
+	/**
177
+	 * @return string
178
+	 */
179
+	public function country_name()
180
+	{
181
+		return $this->country_obj() instanceof \EE_Country
182
+			? $this->country_obj()->name()
183
+			: '';
184
+	}
185
+
186
+
187
+	/**
188
+	 * @return \EE_Country
189
+	 */
190
+	public function country_obj()
191
+	{
192
+		return $this->_country_obj;
193
+	}
194
+
195
+
196
+	/**
197
+	 * @return string
198
+	 */
199
+	public function country()
200
+	{
201
+		if (apply_filters('FHEE__EEI_Address__country__use_abbreviation', true, $this->country_obj())) {
202
+			return $this->country_ID();
203
+		} else {
204
+			return $this->country_name();
205
+		}
206
+	}
207
+
208
+
209
+	/**
210
+	 * @return string
211
+	 */
212
+	public function zip()
213
+	{
214
+		return $this->_zip;
215
+	}
216 216
 }
Please login to merge, or discard this patch.
core/domain/services/wp_queries/EventListQuery.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
                 // set the property value
92 92
                 $this->{$property} = $value;
93 93
                 // then remove it from the array of args that will later be passed to WP_Query()
94
-                unset($args[ $property ]);
94
+                unset($args[$property]);
95 95
             }
96 96
         }
97 97
         return $args;
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
      */
189 189
     public function event_list_title($event_list_title = '')
190 190
     {
191
-        if (! empty($this->title)) {
191
+        if ( ! empty($this->title)) {
192 192
             return $this->title;
193 193
         }
194 194
         return $event_list_title;
Please login to merge, or discard this patch.
Indentation   +194 added lines, -194 removed lines patch added patch discarded remove patch
@@ -15,198 +15,198 @@
 block discarded – undo
15 15
  */
16 16
 class EventListQuery extends WP_Query
17 17
 {
18
-    /**
19
-     * @var string $title
20
-     */
21
-    private $title;
22
-
23
-    /**
24
-     * @var integer $limit
25
-     */
26
-    private $limit = 10;
27
-
28
-    /**
29
-     * @var string $css_class
30
-     */
31
-    private $css_class;
32
-
33
-    /**
34
-     * @var boolean $show_expired
35
-     */
36
-    private $show_expired = false;
37
-
38
-    /**
39
-     * @var string $month
40
-     */
41
-    private $month;
42
-
43
-    /**
44
-     * @var string $category_slug
45
-     */
46
-    private $category_slug;
47
-
48
-    /**
49
-     * @var string $order_by
50
-     */
51
-    private $order_by;
52
-
53
-    /**
54
-     * @var string $sort
55
-     */
56
-    private $sort;
57
-
58
-    /**
59
-     * @var boolean $show_title
60
-     */
61
-    private $show_title = true;
62
-
63
-
64
-    /**
65
-     * EE_Event_List_Query Constructor     *
66
-     *
67
-     * @param array $args
68
-     */
69
-    public function __construct($args = array())
70
-    {
71
-        $args = $this->parseArgs((array) $args);
72
-        $this->setupEventQueryHelper();
73
-        $this->setupFilters();
74
-        $args = $this->getQueryArgs($args);
75
-        // run the query
76
-        parent::__construct($args);
77
-    }
78
-
79
-
80
-    /**
81
-     * @param array $args
82
-     * @return array
83
-     */
84
-    private function parseArgs(array $args)
85
-    {
86
-        // incoming args could be a mix of WP query args + EE shortcode args
87
-        foreach ($args as $property => $value) {
88
-            // if the arg is a property of this class, then it's an EE shortcode arg
89
-            if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
90
-                // set the property value
91
-                $this->{$property} = $value;
92
-                // then remove it from the array of args that will later be passed to WP_Query()
93
-                unset($args[ $property ]);
94
-            }
95
-        }
96
-        return $args;
97
-    }
98
-
99
-
100
-    private function setupEventQueryHelper()
101
-    {
102
-        // add query filters
103
-        EEH_Event_Query::add_query_filters();
104
-        // set params that will get used by the filters
105
-        EEH_Event_Query::set_query_params(
106
-            $this->month,
107
-            $this->category_slug,
108
-            $this->show_expired,
109
-            $this->order_by,
110
-            $this->sort
111
-        );
112
-    }
113
-
114
-
115
-    private function setupFilters()
116
-    {
117
-        // first off, let's remove any filters from previous queries
118
-        remove_filter(
119
-            'FHEE__archive_espresso_events_template__show_header',
120
-            array($this, 'show_event_list_title')
121
-        );
122
-        remove_filter(
123
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
124
-            array($this, 'event_list_title')
125
-        );
126
-        remove_all_filters('FHEE__content_espresso_events__event_class');
127
-        // Event List Title ?
128
-        add_filter(
129
-            'FHEE__archive_espresso_events_template__show_header',
130
-            array($this, 'show_event_list_title')
131
-        );
132
-        add_filter(
133
-            'FHEE__archive_espresso_events_template__upcoming_events_h1',
134
-            array($this, 'event_list_title'),
135
-            10,
136
-            1
137
-        );
138
-        // add the css class
139
-        add_filter(
140
-            'FHEE__content_espresso_events__event_class',
141
-            array($this, 'event_list_css'),
142
-            10,
143
-            1
144
-        );
145
-    }
146
-
147
-
148
-    private function getQueryArgs(array $args)
149
-    {
150
-        // the current "page" we are viewing
151
-        $paged = max(1, get_query_var('paged'));
152
-        // Force these args
153
-        return array_merge(
154
-            $args,
155
-            array(
156
-                'post_type'              => 'espresso_events',
157
-                'posts_per_page'         => $this->limit,
158
-                'update_post_term_cache' => false,
159
-                'update_post_meta_cache' => false,
160
-                'paged'                  => $paged,
161
-                'offset'                 => ($paged - 1) * $this->limit,
162
-            )
163
-        );
164
-    }
165
-
166
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
167
-
168
-    /**
169
-     * show_event_list_title
170
-     *
171
-     * @return boolean
172
-     */
173
-    public function show_event_list_title()
174
-    {
175
-        return filter_var(
176
-            $this->show_title,
177
-            FILTER_VALIDATE_BOOLEAN
178
-        );
179
-    }
180
-
181
-
182
-    /**
183
-     * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
184
-     *
185
-     * @param string $event_list_title
186
-     * @return    string
187
-     */
188
-    public function event_list_title($event_list_title = '')
189
-    {
190
-        if (! empty($this->title)) {
191
-            return $this->title;
192
-        }
193
-        return $event_list_title;
194
-    }
195
-
196
-
197
-    /**
198
-     * callback for FHEE__content_espresso_events__event_class filter
199
-     *
200
-     * @param string $event_list_css
201
-     * @return string
202
-     */
203
-    public function event_list_css($event_list_css = '')
204
-    {
205
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
206
-        $event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
207
-        $event_list_css .= ! empty($event_list_css) ? ' ' : '';
208
-        $event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
209
-        return $event_list_css;
210
-    }
211
-    // phpcs:enable
18
+	/**
19
+	 * @var string $title
20
+	 */
21
+	private $title;
22
+
23
+	/**
24
+	 * @var integer $limit
25
+	 */
26
+	private $limit = 10;
27
+
28
+	/**
29
+	 * @var string $css_class
30
+	 */
31
+	private $css_class;
32
+
33
+	/**
34
+	 * @var boolean $show_expired
35
+	 */
36
+	private $show_expired = false;
37
+
38
+	/**
39
+	 * @var string $month
40
+	 */
41
+	private $month;
42
+
43
+	/**
44
+	 * @var string $category_slug
45
+	 */
46
+	private $category_slug;
47
+
48
+	/**
49
+	 * @var string $order_by
50
+	 */
51
+	private $order_by;
52
+
53
+	/**
54
+	 * @var string $sort
55
+	 */
56
+	private $sort;
57
+
58
+	/**
59
+	 * @var boolean $show_title
60
+	 */
61
+	private $show_title = true;
62
+
63
+
64
+	/**
65
+	 * EE_Event_List_Query Constructor     *
66
+	 *
67
+	 * @param array $args
68
+	 */
69
+	public function __construct($args = array())
70
+	{
71
+		$args = $this->parseArgs((array) $args);
72
+		$this->setupEventQueryHelper();
73
+		$this->setupFilters();
74
+		$args = $this->getQueryArgs($args);
75
+		// run the query
76
+		parent::__construct($args);
77
+	}
78
+
79
+
80
+	/**
81
+	 * @param array $args
82
+	 * @return array
83
+	 */
84
+	private function parseArgs(array $args)
85
+	{
86
+		// incoming args could be a mix of WP query args + EE shortcode args
87
+		foreach ($args as $property => $value) {
88
+			// if the arg is a property of this class, then it's an EE shortcode arg
89
+			if (property_exists($this, $property) && ! property_exists('WP_Query', $property)) {
90
+				// set the property value
91
+				$this->{$property} = $value;
92
+				// then remove it from the array of args that will later be passed to WP_Query()
93
+				unset($args[ $property ]);
94
+			}
95
+		}
96
+		return $args;
97
+	}
98
+
99
+
100
+	private function setupEventQueryHelper()
101
+	{
102
+		// add query filters
103
+		EEH_Event_Query::add_query_filters();
104
+		// set params that will get used by the filters
105
+		EEH_Event_Query::set_query_params(
106
+			$this->month,
107
+			$this->category_slug,
108
+			$this->show_expired,
109
+			$this->order_by,
110
+			$this->sort
111
+		);
112
+	}
113
+
114
+
115
+	private function setupFilters()
116
+	{
117
+		// first off, let's remove any filters from previous queries
118
+		remove_filter(
119
+			'FHEE__archive_espresso_events_template__show_header',
120
+			array($this, 'show_event_list_title')
121
+		);
122
+		remove_filter(
123
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
124
+			array($this, 'event_list_title')
125
+		);
126
+		remove_all_filters('FHEE__content_espresso_events__event_class');
127
+		// Event List Title ?
128
+		add_filter(
129
+			'FHEE__archive_espresso_events_template__show_header',
130
+			array($this, 'show_event_list_title')
131
+		);
132
+		add_filter(
133
+			'FHEE__archive_espresso_events_template__upcoming_events_h1',
134
+			array($this, 'event_list_title'),
135
+			10,
136
+			1
137
+		);
138
+		// add the css class
139
+		add_filter(
140
+			'FHEE__content_espresso_events__event_class',
141
+			array($this, 'event_list_css'),
142
+			10,
143
+			1
144
+		);
145
+	}
146
+
147
+
148
+	private function getQueryArgs(array $args)
149
+	{
150
+		// the current "page" we are viewing
151
+		$paged = max(1, get_query_var('paged'));
152
+		// Force these args
153
+		return array_merge(
154
+			$args,
155
+			array(
156
+				'post_type'              => 'espresso_events',
157
+				'posts_per_page'         => $this->limit,
158
+				'update_post_term_cache' => false,
159
+				'update_post_meta_cache' => false,
160
+				'paged'                  => $paged,
161
+				'offset'                 => ($paged - 1) * $this->limit,
162
+			)
163
+		);
164
+	}
165
+
166
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
167
+
168
+	/**
169
+	 * show_event_list_title
170
+	 *
171
+	 * @return boolean
172
+	 */
173
+	public function show_event_list_title()
174
+	{
175
+		return filter_var(
176
+			$this->show_title,
177
+			FILTER_VALIDATE_BOOLEAN
178
+		);
179
+	}
180
+
181
+
182
+	/**
183
+	 * callback for FHEE__archive_espresso_events_template__upcoming_events_h1 filter
184
+	 *
185
+	 * @param string $event_list_title
186
+	 * @return    string
187
+	 */
188
+	public function event_list_title($event_list_title = '')
189
+	{
190
+		if (! empty($this->title)) {
191
+			return $this->title;
192
+		}
193
+		return $event_list_title;
194
+	}
195
+
196
+
197
+	/**
198
+	 * callback for FHEE__content_espresso_events__event_class filter
199
+	 *
200
+	 * @param string $event_list_css
201
+	 * @return string
202
+	 */
203
+	public function event_list_css($event_list_css = '')
204
+	{
205
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
206
+		$event_list_css .= ! empty($this->css_class) ? $this->css_class : '';
207
+		$event_list_css .= ! empty($event_list_css) ? ' ' : '';
208
+		$event_list_css .= ! empty($this->category_slug) ? $this->category_slug : '';
209
+		return $event_list_css;
210
+	}
211
+	// phpcs:enable
212 212
 }
Please login to merge, or discard this patch.
core/domain/services/registration/CreateRegistrationService.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -70,14 +70,14 @@
 block discarded – undo
70 70
                 'REG_code'        => $reg_code,
71 71
             )
72 72
         );
73
-        if (! $registration instanceof EE_Registration) {
73
+        if ( ! $registration instanceof EE_Registration) {
74 74
             throw new UnexpectedEntityException($registration, 'EE_Registration');
75 75
         }
76 76
         // save registration so that we have an ID
77 77
         $registration->save();
78 78
         // track reservation on reg but don't adjust ticket and datetime reserved counts
79 79
         // because that is done as soon as the tickets are added/removed from the cart
80
-        $registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
80
+        $registration->reserve_ticket(false, 'CreateRegistrationService:'.__LINE__);
81 81
         $registration->_add_relation_to($event, 'Event', array(), $event->ID());
82 82
         $registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
83 83
         $transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
Please login to merge, or discard this patch.
Indentation   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -27,102 +27,102 @@
 block discarded – undo
27 27
  */
28 28
 class CreateRegistrationService extends DomainService
29 29
 {
30
-    /**
31
-     * @param EE_Event        $event
32
-     * @param EE_Transaction  $transaction
33
-     * @param EE_Ticket       $ticket
34
-     * @param EE_Line_Item    $ticket_line_item
35
-     * @param                 $reg_count
36
-     * @param                 $reg_group_size
37
-     * @param string          $reg_status
38
-     * @return EE_Registration
39
-     * @throws OutOfRangeException
40
-     * @throws EE_Error
41
-     * @throws UnexpectedEntityException
42
-     */
43
-    public function create(
44
-        EE_Event $event,
45
-        EE_Transaction $transaction,
46
-        EE_Ticket $ticket,
47
-        EE_Line_Item $ticket_line_item,
48
-        $reg_count,
49
-        $reg_group_size,
50
-        $reg_status = EEM_Registration::status_id_incomplete
51
-    ) {
52
-        $registrations = $transaction->registrations();
53
-        $reg_count = $reg_count ? $reg_count : count($registrations) + 1;
54
-        $reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
55
-        $reg_code = new RegCode($reg_url_link, $transaction, $ticket);
56
-        // generate new EE_Registration
57
-        $registration = EE_Registration::new_instance(
58
-            array(
59
-                'EVT_ID'          => $event->ID(),
60
-                'TXN_ID'          => $transaction->ID(),
61
-                'TKT_ID'          => $ticket->ID(),
62
-                'STS_ID'          => $reg_status,
63
-                'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
64
-                'REG_session'     => EE_Registry::instance()->SSN->id(),
65
-                'REG_count'       => $reg_count,
66
-                'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
67
-                'REG_url_link'    => $reg_url_link,
68
-                'REG_code'        => $reg_code,
69
-            )
70
-        );
71
-        if (! $registration instanceof EE_Registration) {
72
-            throw new UnexpectedEntityException($registration, 'EE_Registration');
73
-        }
74
-        // save registration so that we have an ID
75
-        $registration->save();
76
-        // track reservation on reg but don't adjust ticket and datetime reserved counts
77
-        // because that is done as soon as the tickets are added/removed from the cart
78
-        $registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
79
-        $registration->_add_relation_to($event, 'Event', array(), $event->ID());
80
-        $registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
81
-        $transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
82
-        $registration->save();
83
-        return $registration;
84
-    }
30
+	/**
31
+	 * @param EE_Event        $event
32
+	 * @param EE_Transaction  $transaction
33
+	 * @param EE_Ticket       $ticket
34
+	 * @param EE_Line_Item    $ticket_line_item
35
+	 * @param                 $reg_count
36
+	 * @param                 $reg_group_size
37
+	 * @param string          $reg_status
38
+	 * @return EE_Registration
39
+	 * @throws OutOfRangeException
40
+	 * @throws EE_Error
41
+	 * @throws UnexpectedEntityException
42
+	 */
43
+	public function create(
44
+		EE_Event $event,
45
+		EE_Transaction $transaction,
46
+		EE_Ticket $ticket,
47
+		EE_Line_Item $ticket_line_item,
48
+		$reg_count,
49
+		$reg_group_size,
50
+		$reg_status = EEM_Registration::status_id_incomplete
51
+	) {
52
+		$registrations = $transaction->registrations();
53
+		$reg_count = $reg_count ? $reg_count : count($registrations) + 1;
54
+		$reg_url_link = new RegUrlLink($reg_count, $ticket_line_item);
55
+		$reg_code = new RegCode($reg_url_link, $transaction, $ticket);
56
+		// generate new EE_Registration
57
+		$registration = EE_Registration::new_instance(
58
+			array(
59
+				'EVT_ID'          => $event->ID(),
60
+				'TXN_ID'          => $transaction->ID(),
61
+				'TKT_ID'          => $ticket->ID(),
62
+				'STS_ID'          => $reg_status,
63
+				'REG_final_price' => $this->resolveFinalPrice($transaction, $ticket, $ticket_line_item),
64
+				'REG_session'     => EE_Registry::instance()->SSN->id(),
65
+				'REG_count'       => $reg_count,
66
+				'REG_group_size'  => $reg_group_size ? $reg_group_size : $this->incrementRegGroupSize($registrations),
67
+				'REG_url_link'    => $reg_url_link,
68
+				'REG_code'        => $reg_code,
69
+			)
70
+		);
71
+		if (! $registration instanceof EE_Registration) {
72
+			throw new UnexpectedEntityException($registration, 'EE_Registration');
73
+		}
74
+		// save registration so that we have an ID
75
+		$registration->save();
76
+		// track reservation on reg but don't adjust ticket and datetime reserved counts
77
+		// because that is done as soon as the tickets are added/removed from the cart
78
+		$registration->reserve_ticket(false, 'CreateRegistrationService:' . __LINE__);
79
+		$registration->_add_relation_to($event, 'Event', array(), $event->ID());
80
+		$registration->_add_relation_to($ticket, 'Ticket', array(), $ticket->ID());
81
+		$transaction->_add_relation_to($registration, 'Registration', array(), $registration->ID());
82
+		$registration->save();
83
+		return $registration;
84
+	}
85 85
 
86 86
 
87
-    /**
88
-     * @param EE_Transaction $transaction
89
-     * @param EE_Ticket      $ticket
90
-     * @param EE_Line_Item   $ticket_line_item
91
-     * @return float
92
-     * @throws EE_Error
93
-     * @throws OutOfRangeException
94
-     */
95
-    protected function resolveFinalPrice(
96
-        EE_Transaction $transaction,
97
-        EE_Ticket $ticket,
98
-        EE_Line_Item $ticket_line_item
99
-    ) {
100
-        $final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
101
-            $transaction->total_line_item(),
102
-            $ticket_line_item
103
-        );
104
-        $final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
105
-        return (float) $final_price;
106
-    }
87
+	/**
88
+	 * @param EE_Transaction $transaction
89
+	 * @param EE_Ticket      $ticket
90
+	 * @param EE_Line_Item   $ticket_line_item
91
+	 * @return float
92
+	 * @throws EE_Error
93
+	 * @throws OutOfRangeException
94
+	 */
95
+	protected function resolveFinalPrice(
96
+		EE_Transaction $transaction,
97
+		EE_Ticket $ticket,
98
+		EE_Line_Item $ticket_line_item
99
+	) {
100
+		$final_price = EEH_Line_Item::calculate_final_price_for_ticket_line_item(
101
+			$transaction->total_line_item(),
102
+			$ticket_line_item
103
+		);
104
+		$final_price = $final_price !== null ? $final_price : $ticket->get_ticket_total_with_taxes();
105
+		return (float) $final_price;
106
+	}
107 107
 
108 108
 
109
-    /**
110
-     * @param  EE_Registration[] $registrations
111
-     * @param  boolean           $update_existing_registrations
112
-     * @return int
113
-     * @throws EE_Error
114
-     */
115
-    protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
116
-    {
117
-        $new_reg_group_size = count($registrations) + 1;
118
-        if ($update_existing_registrations) {
119
-            foreach ($registrations as $registration) {
120
-                if ($registration instanceof EE_Registration) {
121
-                    $registration->set_group_size($new_reg_group_size);
122
-                    $registration->save();
123
-                }
124
-            }
125
-        }
126
-        return $new_reg_group_size;
127
-    }
109
+	/**
110
+	 * @param  EE_Registration[] $registrations
111
+	 * @param  boolean           $update_existing_registrations
112
+	 * @return int
113
+	 * @throws EE_Error
114
+	 */
115
+	protected function incrementRegGroupSize(array $registrations, $update_existing_registrations = true)
116
+	{
117
+		$new_reg_group_size = count($registrations) + 1;
118
+		if ($update_existing_registrations) {
119
+			foreach ($registrations as $registration) {
120
+				if ($registration instanceof EE_Registration) {
121
+					$registration->set_group_size($new_reg_group_size);
122
+					$registration->save();
123
+				}
124
+			}
125
+		}
126
+		return $new_reg_group_size;
127
+	}
128 128
 }
Please login to merge, or discard this patch.
core/domain/services/registration/CopyRegistrationService.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
         $reindexed_answers = array();
84 84
         foreach ($answers as $answer) {
85 85
             if ($answer instanceof EE_Answer) {
86
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
86
+                $reindexed_answers[$answer->question_ID()] = $answer->value();
87 87
             }
88 88
         }
89 89
         return $reindexed_answers;
@@ -103,8 +103,8 @@  discard block
 block discarded – undo
103 103
         EE_Registration $registration,
104 104
         $previous_answers
105 105
     ) {
106
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
107
-            ? $previous_answers[ $question->ID() ]
106
+        $old_answer_value = isset($previous_answers[$question->ID()])
107
+            ? $previous_answers[$question->ID()]
108 108
             : '';
109 109
         $new_answer = EE_Answer::new_instance(
110 110
             array(
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
                 'ANS_value' => $old_answer_value,
114 114
             )
115 115
         );
116
-        if (! $new_answer instanceof EE_Answer) {
116
+        if ( ! $new_answer instanceof EE_Answer) {
117 117
             throw new UnexpectedEntityException($new_answer, 'EE_Answer');
118 118
         }
119 119
         $new_answer->save();
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
                         'RPY_amount' => $payment_amount,
151 151
                     )
152 152
                 );
153
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
153
+                if ( ! $new_registration_payment instanceof EE_Registration_Payment) {
154 154
                     throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
155 155
                 }
156 156
                 $new_registration_payment->save();
Please login to merge, or discard this patch.
Indentation   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -25,152 +25,152 @@
 block discarded – undo
25 25
  */
26 26
 class CopyRegistrationService extends DomainService
27 27
 {
28
-    /**
29
-     * @param EE_Registration $target_registration
30
-     * @param EE_Registration $registration_to_copy
31
-     * @return bool
32
-     * @throws UnexpectedEntityException
33
-     * @throws EntityNotFoundException
34
-     * @throws RuntimeException
35
-     * @throws EE_Error
36
-     */
37
-    public function copyRegistrationDetails(
38
-        EE_Registration $target_registration,
39
-        EE_Registration $registration_to_copy
40
-    ) {
41
-        // copy attendee
42
-        $target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
-        $target_registration->updateStatusBasedOnTotalPaid(false);
44
-        $target_registration->save();
45
-        // get answers to previous reg questions
46
-        $answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
-        // get questions to new event reg form
48
-        $new_event = $target_registration->event();
49
-        $field_name = 'Event_Question_Group.'
50
-            . EEM_Event_Question_Group::instance()->fieldNameForContext(
51
-                $registration_to_copy->is_primary_registrant()
52
-            );
53
-        $question_groups = $new_event->question_groups([
54
-                [
55
-                    'Event.EVT_ID' => $new_event->ID(),
56
-                    $field_name => true,
57
-                ],
58
-                'order_by' => ['QSG_order' => 'ASC'],
59
-            ]);
60
-        foreach ($question_groups as $question_group) {
61
-            if ($question_group instanceof \EE_Question_Group) {
62
-                foreach ($question_group->questions() as $question) {
63
-                    if ($question instanceof EE_Question) {
64
-                        $this->generateNewAnswer(
65
-                            $question,
66
-                            $target_registration,
67
-                            $answers
68
-                        );
69
-                    }
70
-                }
71
-            }
72
-        }
73
-        return true;
74
-    }
28
+	/**
29
+	 * @param EE_Registration $target_registration
30
+	 * @param EE_Registration $registration_to_copy
31
+	 * @return bool
32
+	 * @throws UnexpectedEntityException
33
+	 * @throws EntityNotFoundException
34
+	 * @throws RuntimeException
35
+	 * @throws EE_Error
36
+	 */
37
+	public function copyRegistrationDetails(
38
+		EE_Registration $target_registration,
39
+		EE_Registration $registration_to_copy
40
+	) {
41
+		// copy attendee
42
+		$target_registration->set_attendee_id($registration_to_copy->attendee_ID());
43
+		$target_registration->updateStatusBasedOnTotalPaid(false);
44
+		$target_registration->save();
45
+		// get answers to previous reg questions
46
+		$answers = $this->reindexAnswersByQuestionId($registration_to_copy->answers());
47
+		// get questions to new event reg form
48
+		$new_event = $target_registration->event();
49
+		$field_name = 'Event_Question_Group.'
50
+			. EEM_Event_Question_Group::instance()->fieldNameForContext(
51
+				$registration_to_copy->is_primary_registrant()
52
+			);
53
+		$question_groups = $new_event->question_groups([
54
+				[
55
+					'Event.EVT_ID' => $new_event->ID(),
56
+					$field_name => true,
57
+				],
58
+				'order_by' => ['QSG_order' => 'ASC'],
59
+			]);
60
+		foreach ($question_groups as $question_group) {
61
+			if ($question_group instanceof \EE_Question_Group) {
62
+				foreach ($question_group->questions() as $question) {
63
+					if ($question instanceof EE_Question) {
64
+						$this->generateNewAnswer(
65
+							$question,
66
+							$target_registration,
67
+							$answers
68
+						);
69
+					}
70
+				}
71
+			}
72
+		}
73
+		return true;
74
+	}
75 75
 
76 76
 
77
-    /**
78
-     * @param EE_Answer[] $answers
79
-     * @return array
80
-     * @throws EE_Error
81
-     */
82
-    protected function reindexAnswersByQuestionId(array $answers)
83
-    {
84
-        $reindexed_answers = array();
85
-        foreach ($answers as $answer) {
86
-            if ($answer instanceof EE_Answer) {
87
-                $reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
-            }
89
-        }
90
-        return $reindexed_answers;
91
-    }
77
+	/**
78
+	 * @param EE_Answer[] $answers
79
+	 * @return array
80
+	 * @throws EE_Error
81
+	 */
82
+	protected function reindexAnswersByQuestionId(array $answers)
83
+	{
84
+		$reindexed_answers = array();
85
+		foreach ($answers as $answer) {
86
+			if ($answer instanceof EE_Answer) {
87
+				$reindexed_answers[ $answer->question_ID() ] = $answer->value();
88
+			}
89
+		}
90
+		return $reindexed_answers;
91
+	}
92 92
 
93 93
 
94
-    /**
95
-     * @param EE_Question      $question
96
-     * @param EE_Registration  $registration
97
-     * @param                  $previous_answers
98
-     * @return EE_Answer
99
-     * @throws UnexpectedEntityException
100
-     * @throws EE_Error
101
-     */
102
-    protected function generateNewAnswer(
103
-        EE_Question $question,
104
-        EE_Registration $registration,
105
-        $previous_answers
106
-    ) {
107
-        $old_answer_value = isset($previous_answers[ $question->ID() ])
108
-            ? $previous_answers[ $question->ID() ]
109
-            : '';
110
-        $new_answer = EE_Answer::new_instance(
111
-            array(
112
-                'QST_ID'    => $question->ID(),
113
-                'REG_ID'    => $registration->ID(),
114
-                'ANS_value' => $old_answer_value,
115
-            )
116
-        );
117
-        if (! $new_answer instanceof EE_Answer) {
118
-            throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
-        }
120
-        $new_answer->save();
121
-        return $new_answer;
122
-    }
94
+	/**
95
+	 * @param EE_Question      $question
96
+	 * @param EE_Registration  $registration
97
+	 * @param                  $previous_answers
98
+	 * @return EE_Answer
99
+	 * @throws UnexpectedEntityException
100
+	 * @throws EE_Error
101
+	 */
102
+	protected function generateNewAnswer(
103
+		EE_Question $question,
104
+		EE_Registration $registration,
105
+		$previous_answers
106
+	) {
107
+		$old_answer_value = isset($previous_answers[ $question->ID() ])
108
+			? $previous_answers[ $question->ID() ]
109
+			: '';
110
+		$new_answer = EE_Answer::new_instance(
111
+			array(
112
+				'QST_ID'    => $question->ID(),
113
+				'REG_ID'    => $registration->ID(),
114
+				'ANS_value' => $old_answer_value,
115
+			)
116
+		);
117
+		if (! $new_answer instanceof EE_Answer) {
118
+			throw new UnexpectedEntityException($new_answer, 'EE_Answer');
119
+		}
120
+		$new_answer->save();
121
+		return $new_answer;
122
+	}
123 123
 
124 124
 
125
-    /**
126
-     * @param EE_Registration $target_registration
127
-     * @param EE_Registration $registration_to_copy
128
-     * @return bool
129
-     * @throws RuntimeException
130
-     * @throws UnexpectedEntityException
131
-     * @throws EE_Error
132
-     */
133
-    public function copyPaymentDetails(
134
-        EE_Registration $target_registration,
135
-        EE_Registration $registration_to_copy
136
-    ) {
137
-        $save = false;
138
-        $previous_registration_payments = $registration_to_copy->registration_payments();
139
-        $new_registration_payment_total = 0;
140
-        $registration_to_copy_total = $registration_to_copy->paid();
141
-        foreach ($previous_registration_payments as $previous_registration_payment) {
142
-            if (
143
-                $previous_registration_payment instanceof EE_Registration_Payment
144
-                && $previous_registration_payment->payment() instanceof EE_Payment
145
-                && $previous_registration_payment->payment()->is_approved()
146
-            ) {
147
-                $payment_amount = $previous_registration_payment->amount();
148
-                $new_registration_payment = EE_Registration_Payment::new_instance(
149
-                    array(
150
-                        'REG_ID'     => $target_registration->ID(),
151
-                        'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
-                        'RPY_amount' => $payment_amount,
153
-                    )
154
-                );
155
-                if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
-                    throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
-                }
158
-                $new_registration_payment->save();
159
-                // if new reg payment is good, then set old reg payment amount to zero
160
-                $previous_registration_payment->set_amount(0);
161
-                $previous_registration_payment->save();
162
-                // now  increment/decrement payment amounts
163
-                $new_registration_payment_total += $payment_amount;
164
-                $registration_to_copy_total -= $payment_amount;
165
-                $save = true;
166
-            }
167
-        }
168
-        if ($save) {
169
-            $target_registration->set_paid($new_registration_payment_total);
170
-            $target_registration->save();
171
-            $registration_to_copy->set_paid($registration_to_copy_total);
172
-            $registration_to_copy->save();
173
-        }
174
-        return true;
175
-    }
125
+	/**
126
+	 * @param EE_Registration $target_registration
127
+	 * @param EE_Registration $registration_to_copy
128
+	 * @return bool
129
+	 * @throws RuntimeException
130
+	 * @throws UnexpectedEntityException
131
+	 * @throws EE_Error
132
+	 */
133
+	public function copyPaymentDetails(
134
+		EE_Registration $target_registration,
135
+		EE_Registration $registration_to_copy
136
+	) {
137
+		$save = false;
138
+		$previous_registration_payments = $registration_to_copy->registration_payments();
139
+		$new_registration_payment_total = 0;
140
+		$registration_to_copy_total = $registration_to_copy->paid();
141
+		foreach ($previous_registration_payments as $previous_registration_payment) {
142
+			if (
143
+				$previous_registration_payment instanceof EE_Registration_Payment
144
+				&& $previous_registration_payment->payment() instanceof EE_Payment
145
+				&& $previous_registration_payment->payment()->is_approved()
146
+			) {
147
+				$payment_amount = $previous_registration_payment->amount();
148
+				$new_registration_payment = EE_Registration_Payment::new_instance(
149
+					array(
150
+						'REG_ID'     => $target_registration->ID(),
151
+						'PAY_ID'     => $previous_registration_payment->payment()->ID(),
152
+						'RPY_amount' => $payment_amount,
153
+					)
154
+				);
155
+				if (! $new_registration_payment instanceof EE_Registration_Payment) {
156
+					throw new UnexpectedEntityException($new_registration_payment, 'EE_Registration_Payment');
157
+				}
158
+				$new_registration_payment->save();
159
+				// if new reg payment is good, then set old reg payment amount to zero
160
+				$previous_registration_payment->set_amount(0);
161
+				$previous_registration_payment->save();
162
+				// now  increment/decrement payment amounts
163
+				$new_registration_payment_total += $payment_amount;
164
+				$registration_to_copy_total -= $payment_amount;
165
+				$save = true;
166
+			}
167
+		}
168
+		if ($save) {
169
+			$target_registration->set_paid($new_registration_payment_total);
170
+			$target_registration->save();
171
+			$registration_to_copy->set_paid($registration_to_copy_total);
172
+			$registration_to_copy->save();
173
+		}
174
+		return true;
175
+	}
176 176
 }
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Standards.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -71,8 +71,8 @@  discard block
 block discarded – undo
71 71
      * @see    getInstalledStandardPaths()
72 72
      */
73 73
     public static function getInstalledStandardDetails(
74
-        $includeGeneric=false,
75
-        $standardsDir=''
74
+        $includeGeneric = false,
75
+        $standardsDir = ''
76 76
     ) {
77 77
         $rulesets = [];
78 78
 
@@ -156,8 +156,8 @@  discard block
 block discarded – undo
156 156
      * @see    isInstalledStandard()
157 157
      */
158 158
     public static function getInstalledStandards(
159
-        $includeGeneric=false,
160
-        $standardsDir=''
159
+        $includeGeneric = false,
160
+        $standardsDir = ''
161 161
     ) {
162 162
         $installedStandards = [];
163 163
 
Please login to merge, or discard this patch.
Indentation   +319 added lines, -319 removed lines patch added patch discarded remove patch
@@ -15,325 +15,325 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Get a list of paths where standards are installed.
20
-     *
21
-     * Unresolvable relative paths will be excluded from the results.
22
-     *
23
-     * @return array
24
-     */
25
-    public static function getInstalledStandardPaths()
26
-    {
27
-        $ds = DIRECTORY_SEPARATOR;
28
-
29
-        $installedPaths = [dirname(dirname(__DIR__)).$ds.'src'.$ds.'Standards'];
30
-        $configPaths    = Config::getConfigData('installed_paths');
31
-        if ($configPaths !== null) {
32
-            $installedPaths = array_merge($installedPaths, explode(',', $configPaths));
33
-        }
34
-
35
-        $resolvedInstalledPaths = [];
36
-        foreach ($installedPaths as $installedPath) {
37
-            if (substr($installedPath, 0, 1) === '.') {
38
-                $installedPath = Common::realPath(__DIR__.$ds.'..'.$ds.'..'.$ds.$installedPath);
39
-                if ($installedPath === false) {
40
-                    continue;
41
-                }
42
-            }
43
-
44
-            $resolvedInstalledPaths[] = $installedPath;
45
-        }
46
-
47
-        return $resolvedInstalledPaths;
48
-
49
-    }//end getInstalledStandardPaths()
50
-
51
-
52
-    /**
53
-     * Get the details of all coding standards installed.
54
-     *
55
-     * Coding standards are directories located in the
56
-     * CodeSniffer/Standards directory. Valid coding standards
57
-     * include a Sniffs subdirectory.
58
-     *
59
-     * The details returned for each standard are:
60
-     * - path:      the path to the coding standard's main directory
61
-     * - name:      the name of the coding standard, as sourced from the ruleset.xml file
62
-     * - namespace: the namespace used by the coding standard, as sourced from the ruleset.xml file
63
-     *
64
-     * If you only need the paths to the installed standards,
65
-     * use getInstalledStandardPaths() instead as it performs less work to
66
-     * retrieve coding standard names.
67
-     *
68
-     * @param boolean $includeGeneric If true, the special "Generic"
69
-     *                                coding standard will be included
70
-     *                                if installed.
71
-     * @param string  $standardsDir   A specific directory to look for standards
72
-     *                                in. If not specified, PHP_CodeSniffer will
73
-     *                                look in its default locations.
74
-     *
75
-     * @return array
76
-     * @see    getInstalledStandardPaths()
77
-     */
78
-    public static function getInstalledStandardDetails(
79
-        $includeGeneric=false,
80
-        $standardsDir=''
81
-    ) {
82
-        $rulesets = [];
83
-
84
-        if ($standardsDir === '') {
85
-            $installedPaths = self::getInstalledStandardPaths();
86
-        } else {
87
-            $installedPaths = [$standardsDir];
88
-        }
89
-
90
-        foreach ($installedPaths as $standardsDir) {
91
-            // Check if the installed dir is actually a standard itself.
92
-            $csFile = $standardsDir.'/ruleset.xml';
93
-            if (is_file($csFile) === true) {
94
-                $rulesets[] = $csFile;
95
-                continue;
96
-            }
97
-
98
-            if (is_dir($standardsDir) === false) {
99
-                continue;
100
-            }
101
-
102
-            $di = new \DirectoryIterator($standardsDir);
103
-            foreach ($di as $file) {
104
-                if ($file->isDir() === true && $file->isDot() === false) {
105
-                    $filename = $file->getFilename();
106
-
107
-                    // Ignore the special "Generic" standard.
108
-                    if ($includeGeneric === false && $filename === 'Generic') {
109
-                        continue;
110
-                    }
111
-
112
-                    // Valid coding standard dirs include a ruleset.
113
-                    $csFile = $file->getPathname().'/ruleset.xml';
114
-                    if (is_file($csFile) === true) {
115
-                        $rulesets[] = $csFile;
116
-                    }
117
-                }
118
-            }
119
-        }//end foreach
120
-
121
-        $installedStandards = [];
122
-
123
-        foreach ($rulesets as $rulesetPath) {
124
-            $ruleset = @simplexml_load_string(file_get_contents($rulesetPath));
125
-            if ($ruleset === false) {
126
-                continue;
127
-            }
128
-
129
-            $standardName = (string) $ruleset['name'];
130
-            $dirname      = basename(dirname($rulesetPath));
131
-
132
-            if (isset($ruleset['namespace']) === true) {
133
-                $namespace = (string) $ruleset['namespace'];
134
-            } else {
135
-                $namespace = $dirname;
136
-            }
137
-
138
-            $installedStandards[$dirname] = [
139
-                'path'      => dirname($rulesetPath),
140
-                'name'      => $standardName,
141
-                'namespace' => $namespace,
142
-            ];
143
-        }//end foreach
144
-
145
-        return $installedStandards;
146
-
147
-    }//end getInstalledStandardDetails()
148
-
149
-
150
-    /**
151
-     * Get a list of all coding standards installed.
152
-     *
153
-     * Coding standards are directories located in the
154
-     * CodeSniffer/Standards directory. Valid coding standards
155
-     * include a Sniffs subdirectory.
156
-     *
157
-     * @param boolean $includeGeneric If true, the special "Generic"
158
-     *                                coding standard will be included
159
-     *                                if installed.
160
-     * @param string  $standardsDir   A specific directory to look for standards
161
-     *                                in. If not specified, PHP_CodeSniffer will
162
-     *                                look in its default locations.
163
-     *
164
-     * @return array
165
-     * @see    isInstalledStandard()
166
-     */
167
-    public static function getInstalledStandards(
168
-        $includeGeneric=false,
169
-        $standardsDir=''
170
-    ) {
171
-        $installedStandards = [];
172
-
173
-        if ($standardsDir === '') {
174
-            $installedPaths = self::getInstalledStandardPaths();
175
-        } else {
176
-            $installedPaths = [$standardsDir];
177
-        }
178
-
179
-        foreach ($installedPaths as $standardsDir) {
180
-            // Check if the installed dir is actually a standard itself.
181
-            $csFile = $standardsDir.'/ruleset.xml';
182
-            if (is_file($csFile) === true) {
183
-                $basename = basename($standardsDir);
184
-                $installedStandards[$basename] = $basename;
185
-                continue;
186
-            }
187
-
188
-            if (is_dir($standardsDir) === false) {
189
-                // Doesn't exist.
190
-                continue;
191
-            }
192
-
193
-            $di = new \DirectoryIterator($standardsDir);
194
-            $standardsInDir = [];
195
-            foreach ($di as $file) {
196
-                if ($file->isDir() === true && $file->isDot() === false) {
197
-                    $filename = $file->getFilename();
198
-
199
-                    // Ignore the special "Generic" standard.
200
-                    if ($includeGeneric === false && $filename === 'Generic') {
201
-                        continue;
202
-                    }
203
-
204
-                    // Valid coding standard dirs include a ruleset.
205
-                    $csFile = $file->getPathname().'/ruleset.xml';
206
-                    if (is_file($csFile) === true) {
207
-                        $standardsInDir[$filename] = $filename;
208
-                    }
209
-                }
210
-            }
211
-
212
-            natsort($standardsInDir);
213
-            $installedStandards += $standardsInDir;
214
-        }//end foreach
215
-
216
-        return $installedStandards;
217
-
218
-    }//end getInstalledStandards()
219
-
220
-
221
-    /**
222
-     * Determine if a standard is installed.
223
-     *
224
-     * Coding standards are directories located in the
225
-     * CodeSniffer/Standards directory. Valid coding standards
226
-     * include a ruleset.xml file.
227
-     *
228
-     * @param string $standard The name of the coding standard.
229
-     *
230
-     * @return boolean
231
-     * @see    getInstalledStandards()
232
-     */
233
-    public static function isInstalledStandard($standard)
234
-    {
235
-        $path = self::getInstalledStandardPath($standard);
236
-        if ($path !== null && strpos($path, 'ruleset.xml') !== false) {
237
-            return true;
238
-        } else {
239
-            // This could be a custom standard, installed outside our
240
-            // standards directory.
241
-            $standard = Common::realPath($standard);
242
-            if ($standard === false) {
243
-                return false;
244
-            }
245
-
246
-            // Might be an actual ruleset file itUtil.
247
-            // If it has an XML extension, let's at least try it.
248
-            if (is_file($standard) === true
249
-                && (substr(strtolower($standard), -4) === '.xml'
250
-                || substr(strtolower($standard), -9) === '.xml.dist')
251
-            ) {
252
-                return true;
253
-            }
254
-
255
-            // If it is a directory with a ruleset.xml file in it,
256
-            // it is a standard.
257
-            $ruleset = rtrim($standard, ' /\\').DIRECTORY_SEPARATOR.'ruleset.xml';
258
-            if (is_file($ruleset) === true) {
259
-                return true;
260
-            }
261
-        }//end if
262
-
263
-        return false;
264
-
265
-    }//end isInstalledStandard()
266
-
267
-
268
-    /**
269
-     * Return the path of an installed coding standard.
270
-     *
271
-     * Coding standards are directories located in the
272
-     * CodeSniffer/Standards directory. Valid coding standards
273
-     * include a ruleset.xml file.
274
-     *
275
-     * @param string $standard The name of the coding standard.
276
-     *
277
-     * @return string|null
278
-     */
279
-    public static function getInstalledStandardPath($standard)
280
-    {
281
-        if (strpos($standard, '.') !== false) {
282
-            return null;
283
-        }
284
-
285
-        $installedPaths = self::getInstalledStandardPaths();
286
-        foreach ($installedPaths as $installedPath) {
287
-            $standardPath = $installedPath.DIRECTORY_SEPARATOR.$standard;
288
-            if (file_exists($standardPath) === false) {
289
-                if (basename($installedPath) !== $standard) {
290
-                    continue;
291
-                }
292
-
293
-                $standardPath = $installedPath;
294
-            }
295
-
296
-            $path = Common::realpath($standardPath.DIRECTORY_SEPARATOR.'ruleset.xml');
297
-
298
-            if ($path !== false && is_file($path) === true) {
299
-                return $path;
300
-            } else if (Common::isPharFile($standardPath) === true) {
301
-                $path = Common::realpath($standardPath);
302
-                if ($path !== false) {
303
-                    return $path;
304
-                }
305
-            }
306
-        }//end foreach
307
-
308
-        return null;
309
-
310
-    }//end getInstalledStandardPath()
311
-
312
-
313
-    /**
314
-     * Prints out a list of installed coding standards.
315
-     *
316
-     * @return void
317
-     */
318
-    public static function printInstalledStandards()
319
-    {
320
-        $installedStandards = self::getInstalledStandards();
321
-        $numStandards       = count($installedStandards);
322
-
323
-        if ($numStandards === 0) {
324
-            echo 'No coding standards are installed.'.PHP_EOL;
325
-        } else {
326
-            $lastStandard = array_pop($installedStandards);
327
-            if ($numStandards === 1) {
328
-                echo "The only coding standard installed is $lastStandard".PHP_EOL;
329
-            } else {
330
-                $standardList  = implode(', ', $installedStandards);
331
-                $standardList .= ' and '.$lastStandard;
332
-                echo 'The installed coding standards are '.$standardList.PHP_EOL;
333
-            }
334
-        }
335
-
336
-    }//end printInstalledStandards()
18
+	/**
19
+	 * Get a list of paths where standards are installed.
20
+	 *
21
+	 * Unresolvable relative paths will be excluded from the results.
22
+	 *
23
+	 * @return array
24
+	 */
25
+	public static function getInstalledStandardPaths()
26
+	{
27
+		$ds = DIRECTORY_SEPARATOR;
28
+
29
+		$installedPaths = [dirname(dirname(__DIR__)).$ds.'src'.$ds.'Standards'];
30
+		$configPaths    = Config::getConfigData('installed_paths');
31
+		if ($configPaths !== null) {
32
+			$installedPaths = array_merge($installedPaths, explode(',', $configPaths));
33
+		}
34
+
35
+		$resolvedInstalledPaths = [];
36
+		foreach ($installedPaths as $installedPath) {
37
+			if (substr($installedPath, 0, 1) === '.') {
38
+				$installedPath = Common::realPath(__DIR__.$ds.'..'.$ds.'..'.$ds.$installedPath);
39
+				if ($installedPath === false) {
40
+					continue;
41
+				}
42
+			}
43
+
44
+			$resolvedInstalledPaths[] = $installedPath;
45
+		}
46
+
47
+		return $resolvedInstalledPaths;
48
+
49
+	}//end getInstalledStandardPaths()
50
+
51
+
52
+	/**
53
+	 * Get the details of all coding standards installed.
54
+	 *
55
+	 * Coding standards are directories located in the
56
+	 * CodeSniffer/Standards directory. Valid coding standards
57
+	 * include a Sniffs subdirectory.
58
+	 *
59
+	 * The details returned for each standard are:
60
+	 * - path:      the path to the coding standard's main directory
61
+	 * - name:      the name of the coding standard, as sourced from the ruleset.xml file
62
+	 * - namespace: the namespace used by the coding standard, as sourced from the ruleset.xml file
63
+	 *
64
+	 * If you only need the paths to the installed standards,
65
+	 * use getInstalledStandardPaths() instead as it performs less work to
66
+	 * retrieve coding standard names.
67
+	 *
68
+	 * @param boolean $includeGeneric If true, the special "Generic"
69
+	 *                                coding standard will be included
70
+	 *                                if installed.
71
+	 * @param string  $standardsDir   A specific directory to look for standards
72
+	 *                                in. If not specified, PHP_CodeSniffer will
73
+	 *                                look in its default locations.
74
+	 *
75
+	 * @return array
76
+	 * @see    getInstalledStandardPaths()
77
+	 */
78
+	public static function getInstalledStandardDetails(
79
+		$includeGeneric=false,
80
+		$standardsDir=''
81
+	) {
82
+		$rulesets = [];
83
+
84
+		if ($standardsDir === '') {
85
+			$installedPaths = self::getInstalledStandardPaths();
86
+		} else {
87
+			$installedPaths = [$standardsDir];
88
+		}
89
+
90
+		foreach ($installedPaths as $standardsDir) {
91
+			// Check if the installed dir is actually a standard itself.
92
+			$csFile = $standardsDir.'/ruleset.xml';
93
+			if (is_file($csFile) === true) {
94
+				$rulesets[] = $csFile;
95
+				continue;
96
+			}
97
+
98
+			if (is_dir($standardsDir) === false) {
99
+				continue;
100
+			}
101
+
102
+			$di = new \DirectoryIterator($standardsDir);
103
+			foreach ($di as $file) {
104
+				if ($file->isDir() === true && $file->isDot() === false) {
105
+					$filename = $file->getFilename();
106
+
107
+					// Ignore the special "Generic" standard.
108
+					if ($includeGeneric === false && $filename === 'Generic') {
109
+						continue;
110
+					}
111
+
112
+					// Valid coding standard dirs include a ruleset.
113
+					$csFile = $file->getPathname().'/ruleset.xml';
114
+					if (is_file($csFile) === true) {
115
+						$rulesets[] = $csFile;
116
+					}
117
+				}
118
+			}
119
+		}//end foreach
120
+
121
+		$installedStandards = [];
122
+
123
+		foreach ($rulesets as $rulesetPath) {
124
+			$ruleset = @simplexml_load_string(file_get_contents($rulesetPath));
125
+			if ($ruleset === false) {
126
+				continue;
127
+			}
128
+
129
+			$standardName = (string) $ruleset['name'];
130
+			$dirname      = basename(dirname($rulesetPath));
131
+
132
+			if (isset($ruleset['namespace']) === true) {
133
+				$namespace = (string) $ruleset['namespace'];
134
+			} else {
135
+				$namespace = $dirname;
136
+			}
137
+
138
+			$installedStandards[$dirname] = [
139
+				'path'      => dirname($rulesetPath),
140
+				'name'      => $standardName,
141
+				'namespace' => $namespace,
142
+			];
143
+		}//end foreach
144
+
145
+		return $installedStandards;
146
+
147
+	}//end getInstalledStandardDetails()
148
+
149
+
150
+	/**
151
+	 * Get a list of all coding standards installed.
152
+	 *
153
+	 * Coding standards are directories located in the
154
+	 * CodeSniffer/Standards directory. Valid coding standards
155
+	 * include a Sniffs subdirectory.
156
+	 *
157
+	 * @param boolean $includeGeneric If true, the special "Generic"
158
+	 *                                coding standard will be included
159
+	 *                                if installed.
160
+	 * @param string  $standardsDir   A specific directory to look for standards
161
+	 *                                in. If not specified, PHP_CodeSniffer will
162
+	 *                                look in its default locations.
163
+	 *
164
+	 * @return array
165
+	 * @see    isInstalledStandard()
166
+	 */
167
+	public static function getInstalledStandards(
168
+		$includeGeneric=false,
169
+		$standardsDir=''
170
+	) {
171
+		$installedStandards = [];
172
+
173
+		if ($standardsDir === '') {
174
+			$installedPaths = self::getInstalledStandardPaths();
175
+		} else {
176
+			$installedPaths = [$standardsDir];
177
+		}
178
+
179
+		foreach ($installedPaths as $standardsDir) {
180
+			// Check if the installed dir is actually a standard itself.
181
+			$csFile = $standardsDir.'/ruleset.xml';
182
+			if (is_file($csFile) === true) {
183
+				$basename = basename($standardsDir);
184
+				$installedStandards[$basename] = $basename;
185
+				continue;
186
+			}
187
+
188
+			if (is_dir($standardsDir) === false) {
189
+				// Doesn't exist.
190
+				continue;
191
+			}
192
+
193
+			$di = new \DirectoryIterator($standardsDir);
194
+			$standardsInDir = [];
195
+			foreach ($di as $file) {
196
+				if ($file->isDir() === true && $file->isDot() === false) {
197
+					$filename = $file->getFilename();
198
+
199
+					// Ignore the special "Generic" standard.
200
+					if ($includeGeneric === false && $filename === 'Generic') {
201
+						continue;
202
+					}
203
+
204
+					// Valid coding standard dirs include a ruleset.
205
+					$csFile = $file->getPathname().'/ruleset.xml';
206
+					if (is_file($csFile) === true) {
207
+						$standardsInDir[$filename] = $filename;
208
+					}
209
+				}
210
+			}
211
+
212
+			natsort($standardsInDir);
213
+			$installedStandards += $standardsInDir;
214
+		}//end foreach
215
+
216
+		return $installedStandards;
217
+
218
+	}//end getInstalledStandards()
219
+
220
+
221
+	/**
222
+	 * Determine if a standard is installed.
223
+	 *
224
+	 * Coding standards are directories located in the
225
+	 * CodeSniffer/Standards directory. Valid coding standards
226
+	 * include a ruleset.xml file.
227
+	 *
228
+	 * @param string $standard The name of the coding standard.
229
+	 *
230
+	 * @return boolean
231
+	 * @see    getInstalledStandards()
232
+	 */
233
+	public static function isInstalledStandard($standard)
234
+	{
235
+		$path = self::getInstalledStandardPath($standard);
236
+		if ($path !== null && strpos($path, 'ruleset.xml') !== false) {
237
+			return true;
238
+		} else {
239
+			// This could be a custom standard, installed outside our
240
+			// standards directory.
241
+			$standard = Common::realPath($standard);
242
+			if ($standard === false) {
243
+				return false;
244
+			}
245
+
246
+			// Might be an actual ruleset file itUtil.
247
+			// If it has an XML extension, let's at least try it.
248
+			if (is_file($standard) === true
249
+				&& (substr(strtolower($standard), -4) === '.xml'
250
+				|| substr(strtolower($standard), -9) === '.xml.dist')
251
+			) {
252
+				return true;
253
+			}
254
+
255
+			// If it is a directory with a ruleset.xml file in it,
256
+			// it is a standard.
257
+			$ruleset = rtrim($standard, ' /\\').DIRECTORY_SEPARATOR.'ruleset.xml';
258
+			if (is_file($ruleset) === true) {
259
+				return true;
260
+			}
261
+		}//end if
262
+
263
+		return false;
264
+
265
+	}//end isInstalledStandard()
266
+
267
+
268
+	/**
269
+	 * Return the path of an installed coding standard.
270
+	 *
271
+	 * Coding standards are directories located in the
272
+	 * CodeSniffer/Standards directory. Valid coding standards
273
+	 * include a ruleset.xml file.
274
+	 *
275
+	 * @param string $standard The name of the coding standard.
276
+	 *
277
+	 * @return string|null
278
+	 */
279
+	public static function getInstalledStandardPath($standard)
280
+	{
281
+		if (strpos($standard, '.') !== false) {
282
+			return null;
283
+		}
284
+
285
+		$installedPaths = self::getInstalledStandardPaths();
286
+		foreach ($installedPaths as $installedPath) {
287
+			$standardPath = $installedPath.DIRECTORY_SEPARATOR.$standard;
288
+			if (file_exists($standardPath) === false) {
289
+				if (basename($installedPath) !== $standard) {
290
+					continue;
291
+				}
292
+
293
+				$standardPath = $installedPath;
294
+			}
295
+
296
+			$path = Common::realpath($standardPath.DIRECTORY_SEPARATOR.'ruleset.xml');
297
+
298
+			if ($path !== false && is_file($path) === true) {
299
+				return $path;
300
+			} else if (Common::isPharFile($standardPath) === true) {
301
+				$path = Common::realpath($standardPath);
302
+				if ($path !== false) {
303
+					return $path;
304
+				}
305
+			}
306
+		}//end foreach
307
+
308
+		return null;
309
+
310
+	}//end getInstalledStandardPath()
311
+
312
+
313
+	/**
314
+	 * Prints out a list of installed coding standards.
315
+	 *
316
+	 * @return void
317
+	 */
318
+	public static function printInstalledStandards()
319
+	{
320
+		$installedStandards = self::getInstalledStandards();
321
+		$numStandards       = count($installedStandards);
322
+
323
+		if ($numStandards === 0) {
324
+			echo 'No coding standards are installed.'.PHP_EOL;
325
+		} else {
326
+			$lastStandard = array_pop($installedStandards);
327
+			if ($numStandards === 1) {
328
+				echo "The only coding standard installed is $lastStandard".PHP_EOL;
329
+			} else {
330
+				$standardList  = implode(', ', $installedStandards);
331
+				$standardList .= ' and '.$lastStandard;
332
+				echo 'The installed coding standards are '.$standardList.PHP_EOL;
333
+			}
334
+		}
335
+
336
+	}//end printInstalledStandards()
337 337
 
338 338
 
339 339
 }//end class
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Timing.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -48,7 +48,7 @@
 block discarded – undo
48 48
      *
49 49
      * @return void
50 50
      */
51
-    public static function printRunTime($force=false)
51
+    public static function printRunTime($force = false)
52 52
     {
53 53
         if ($force === false && self::$printed === true) {
54 54
             // A double call.
Please login to merge, or discard this patch.
Indentation   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -12,75 +12,75 @@
 block discarded – undo
12 12
 class Timing
13 13
 {
14 14
 
15
-    /**
16
-     * The start time of the run.
17
-     *
18
-     * @var float
19
-     */
20
-    private static $startTime;
21
-
22
-    /**
23
-     * Used to make sure we only print the run time once per run.
24
-     *
25
-     * @var boolean
26
-     */
27
-    private static $printed = false;
28
-
29
-
30
-    /**
31
-     * Start recording time for the run.
32
-     *
33
-     * @return void
34
-     */
35
-    public static function startTiming()
36
-    {
37
-
38
-        self::$startTime = microtime(true);
39
-
40
-    }//end startTiming()
41
-
42
-
43
-    /**
44
-     * Print information about the run.
45
-     *
46
-     * @param boolean $force If TRUE, prints the output even if it has
47
-     *                       already been printed during the run.
48
-     *
49
-     * @return void
50
-     */
51
-    public static function printRunTime($force=false)
52
-    {
53
-        if ($force === false && self::$printed === true) {
54
-            // A double call.
55
-            return;
56
-        }
57
-
58
-        if (self::$startTime === null) {
59
-            // Timing was never started.
60
-            return;
61
-        }
62
-
63
-        $time = ((microtime(true) - self::$startTime) * 1000);
64
-
65
-        if ($time > 60000) {
66
-            $mins = floor($time / 60000);
67
-            $secs = round((fmod($time, 60000) / 1000), 2);
68
-            $time = $mins.' mins';
69
-            if ($secs !== 0) {
70
-                $time .= ", $secs secs";
71
-            }
72
-        } else if ($time > 1000) {
73
-            $time = round(($time / 1000), 2).' secs';
74
-        } else {
75
-            $time = round($time).'ms';
76
-        }
77
-
78
-        $mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB';
79
-        echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL;
80
-
81
-        self::$printed = true;
82
-
83
-    }//end printRunTime()
15
+	/**
16
+	 * The start time of the run.
17
+	 *
18
+	 * @var float
19
+	 */
20
+	private static $startTime;
21
+
22
+	/**
23
+	 * Used to make sure we only print the run time once per run.
24
+	 *
25
+	 * @var boolean
26
+	 */
27
+	private static $printed = false;
28
+
29
+
30
+	/**
31
+	 * Start recording time for the run.
32
+	 *
33
+	 * @return void
34
+	 */
35
+	public static function startTiming()
36
+	{
37
+
38
+		self::$startTime = microtime(true);
39
+
40
+	}//end startTiming()
41
+
42
+
43
+	/**
44
+	 * Print information about the run.
45
+	 *
46
+	 * @param boolean $force If TRUE, prints the output even if it has
47
+	 *                       already been printed during the run.
48
+	 *
49
+	 * @return void
50
+	 */
51
+	public static function printRunTime($force=false)
52
+	{
53
+		if ($force === false && self::$printed === true) {
54
+			// A double call.
55
+			return;
56
+		}
57
+
58
+		if (self::$startTime === null) {
59
+			// Timing was never started.
60
+			return;
61
+		}
62
+
63
+		$time = ((microtime(true) - self::$startTime) * 1000);
64
+
65
+		if ($time > 60000) {
66
+			$mins = floor($time / 60000);
67
+			$secs = round((fmod($time, 60000) / 1000), 2);
68
+			$time = $mins.' mins';
69
+			if ($secs !== 0) {
70
+				$time .= ", $secs secs";
71
+			}
72
+		} else if ($time > 1000) {
73
+			$time = round(($time / 1000), 2).' secs';
74
+		} else {
75
+			$time = round($time).'ms';
76
+		}
77
+
78
+		$mem = round((memory_get_peak_usage(true) / (1024 * 1024)), 2).'MB';
79
+		echo "Time: $time; Memory: $mem".PHP_EOL.PHP_EOL;
80
+
81
+		self::$printed = true;
82
+
83
+	}//end printRunTime()
84 84
 
85 85
 
86 86
 }//end class
Please login to merge, or discard this patch.
vendor/squizlabs/php_codesniffer/src/Util/Common.php 3 patches
Switch Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -407,19 +407,19 @@
 block discarded – undo
407 407
         } else {
408 408
             $lowerVarType = strtolower($varType);
409 409
             switch ($lowerVarType) {
410
-            case 'bool':
411
-            case 'boolean':
412
-                return 'boolean';
413
-            case 'double':
414
-            case 'real':
415
-            case 'float':
416
-                return 'float';
417
-            case 'int':
418
-            case 'integer':
419
-                return 'integer';
420
-            case 'array()':
421
-            case 'array':
422
-                return 'array';
410
+            	case 'bool':
411
+            	case 'boolean':
412
+                	return 'boolean';
413
+            	case 'double':
414
+            	case 'real':
415
+            	case 'float':
416
+                	return 'float';
417
+            	case 'int':
418
+            	case 'integer':
419
+                	return 'integer';
420
+            	case 'array()':
421
+            	case 'array':
422
+                	return 'array';
423 423
             }//end switch
424 424
 
425 425
             if (strpos($lowerVarType, 'array(') !== false) {
Please login to merge, or discard this patch.
Indentation   +553 added lines, -553 removed lines patch added patch discarded remove patch
@@ -12,559 +12,559 @@
 block discarded – undo
12 12
 class Common
13 13
 {
14 14
 
15
-    /**
16
-     * An array of variable types for param/var we will check.
17
-     *
18
-     * @var string[]
19
-     */
20
-    public static $allowedTypes = [
21
-        'array',
22
-        'boolean',
23
-        'float',
24
-        'integer',
25
-        'mixed',
26
-        'object',
27
-        'string',
28
-        'resource',
29
-        'callable',
30
-    ];
31
-
32
-
33
-    /**
34
-     * Return TRUE if the path is a PHAR file.
35
-     *
36
-     * @param string $path The path to use.
37
-     *
38
-     * @return mixed
39
-     */
40
-    public static function isPharFile($path)
41
-    {
42
-        if (strpos($path, 'phar://') === 0) {
43
-            return true;
44
-        }
45
-
46
-        return false;
47
-
48
-    }//end isPharFile()
49
-
50
-
51
-    /**
52
-     * Checks if a file is readable.
53
-     *
54
-     * Addresses PHP bug related to reading files from network drives on Windows.
55
-     * e.g. when using WSL2.
56
-     *
57
-     * @param string $path The path to the file.
58
-     *
59
-     * @return boolean
60
-     */
61
-    public static function isReadable($path)
62
-    {
63
-        if (@is_readable($path) === true) {
64
-            return true;
65
-        }
66
-
67
-        if (@file_exists($path) === true && @is_file($path) === true) {
68
-            $f = @fopen($path, 'rb');
69
-            if (fclose($f) === true) {
70
-                return true;
71
-            }
72
-        }
73
-
74
-        return false;
75
-
76
-    }//end isReadable()
77
-
78
-
79
-    /**
80
-     * CodeSniffer alternative for realpath.
81
-     *
82
-     * Allows for PHAR support.
83
-     *
84
-     * @param string $path The path to use.
85
-     *
86
-     * @return mixed
87
-     */
88
-    public static function realpath($path)
89
-    {
90
-        // Support the path replacement of ~ with the user's home directory.
91
-        if (substr($path, 0, 2) === '~/') {
92
-            $homeDir = getenv('HOME');
93
-            if ($homeDir !== false) {
94
-                $path = $homeDir.substr($path, 1);
95
-            }
96
-        }
97
-
98
-        // Check for process substitution.
99
-        if (strpos($path, '/dev/fd') === 0) {
100
-            return str_replace('/dev/fd', 'php://fd', $path);
101
-        }
102
-
103
-        // No extra work needed if this is not a phar file.
104
-        if (self::isPharFile($path) === false) {
105
-            return realpath($path);
106
-        }
107
-
108
-        // Before trying to break down the file path,
109
-        // check if it exists first because it will mostly not
110
-        // change after running the below code.
111
-        if (file_exists($path) === true) {
112
-            return $path;
113
-        }
114
-
115
-        $phar  = \Phar::running(false);
116
-        $extra = str_replace('phar://'.$phar, '', $path);
117
-        $path  = realpath($phar);
118
-        if ($path === false) {
119
-            return false;
120
-        }
121
-
122
-        $path = 'phar://'.$path.$extra;
123
-        if (file_exists($path) === true) {
124
-            return $path;
125
-        }
126
-
127
-        return false;
128
-
129
-    }//end realpath()
130
-
131
-
132
-    /**
133
-     * Removes a base path from the front of a file path.
134
-     *
135
-     * @param string $path     The path of the file.
136
-     * @param string $basepath The base path to remove. This should not end
137
-     *                         with a directory separator.
138
-     *
139
-     * @return string
140
-     */
141
-    public static function stripBasepath($path, $basepath)
142
-    {
143
-        if (empty($basepath) === true) {
144
-            return $path;
145
-        }
146
-
147
-        $basepathLen = strlen($basepath);
148
-        if (substr($path, 0, $basepathLen) === $basepath) {
149
-            $path = substr($path, $basepathLen);
150
-        }
151
-
152
-        $path = ltrim($path, DIRECTORY_SEPARATOR);
153
-        if ($path === '') {
154
-            $path = '.';
155
-        }
156
-
157
-        return $path;
158
-
159
-    }//end stripBasepath()
160
-
161
-
162
-    /**
163
-     * Detects the EOL character being used in a string.
164
-     *
165
-     * @param string $contents The contents to check.
166
-     *
167
-     * @return string
168
-     */
169
-    public static function detectLineEndings($contents)
170
-    {
171
-        if (preg_match("/\r\n?|\n/", $contents, $matches) !== 1) {
172
-            // Assume there are no newlines.
173
-            $eolChar = "\n";
174
-        } else {
175
-            $eolChar = $matches[0];
176
-        }
177
-
178
-        return $eolChar;
179
-
180
-    }//end detectLineEndings()
181
-
182
-
183
-    /**
184
-     * Check if STDIN is a TTY.
185
-     *
186
-     * @return boolean
187
-     */
188
-    public static function isStdinATTY()
189
-    {
190
-        // The check is slow (especially calling `tty`) so we static
191
-        // cache the result.
192
-        static $isTTY = null;
193
-
194
-        if ($isTTY !== null) {
195
-            return $isTTY;
196
-        }
197
-
198
-        if (defined('STDIN') === false) {
199
-            return false;
200
-        }
201
-
202
-        // If PHP has the POSIX extensions we will use them.
203
-        if (function_exists('posix_isatty') === true) {
204
-            $isTTY = (posix_isatty(STDIN) === true);
205
-            return $isTTY;
206
-        }
207
-
208
-        // Next try is detecting whether we have `tty` installed and use that.
209
-        if (defined('PHP_WINDOWS_VERSION_PLATFORM') === true) {
210
-            $devnull = 'NUL';
211
-            $which   = 'where';
212
-        } else {
213
-            $devnull = '/dev/null';
214
-            $which   = 'which';
215
-        }
216
-
217
-        $tty = trim(shell_exec("$which tty 2> $devnull"));
218
-        if (empty($tty) === false) {
219
-            exec("tty -s 2> $devnull", $output, $returnValue);
220
-            $isTTY = ($returnValue === 0);
221
-            return $isTTY;
222
-        }
223
-
224
-        // Finally we will use fstat.  The solution borrowed from
225
-        // https://stackoverflow.com/questions/11327367/detect-if-a-php-script-is-being-run-interactively-or-not
226
-        // This doesn't work on Mingw/Cygwin/... using Mintty but they
227
-        // have `tty` installed.
228
-        $type = [
229
-            'S_IFMT'  => 0170000,
230
-            'S_IFIFO' => 0010000,
231
-        ];
232
-
233
-        $stat  = fstat(STDIN);
234
-        $mode  = ($stat['mode'] & $type['S_IFMT']);
235
-        $isTTY = ($mode !== $type['S_IFIFO']);
236
-
237
-        return $isTTY;
238
-
239
-    }//end isStdinATTY()
240
-
241
-
242
-    /**
243
-     * Escape a path to a system command.
244
-     *
245
-     * @param string $cmd The path to the system command.
246
-     *
247
-     * @return string
248
-     */
249
-    public static function escapeshellcmd($cmd)
250
-    {
251
-        $cmd = escapeshellcmd($cmd);
252
-
253
-        if (stripos(PHP_OS, 'WIN') === 0) {
254
-            // Spaces are not escaped by escapeshellcmd on Windows, but need to be
255
-            // for the command to be able to execute.
256
-            $cmd = preg_replace('`(?<!^) `', '^ ', $cmd);
257
-        }
258
-
259
-        return $cmd;
260
-
261
-    }//end escapeshellcmd()
262
-
263
-
264
-    /**
265
-     * Prepares token content for output to screen.
266
-     *
267
-     * Replaces invisible characters so they are visible. On non-Windows
268
-     * operating systems it will also colour the invisible characters.
269
-     *
270
-     * @param string   $content The content to prepare.
271
-     * @param string[] $exclude A list of characters to leave invisible.
272
-     *                          Can contain \r, \n, \t and a space.
273
-     *
274
-     * @return string
275
-     */
276
-    public static function prepareForOutput($content, $exclude=[])
277
-    {
278
-        if (stripos(PHP_OS, 'WIN') === 0) {
279
-            if (in_array("\r", $exclude, true) === false) {
280
-                $content = str_replace("\r", '\r', $content);
281
-            }
282
-
283
-            if (in_array("\n", $exclude, true) === false) {
284
-                $content = str_replace("\n", '\n', $content);
285
-            }
286
-
287
-            if (in_array("\t", $exclude, true) === false) {
288
-                $content = str_replace("\t", '\t', $content);
289
-            }
290
-        } else {
291
-            if (in_array("\r", $exclude, true) === false) {
292
-                $content = str_replace("\r", "\033[30;1m\\r\033[0m", $content);
293
-            }
294
-
295
-            if (in_array("\n", $exclude, true) === false) {
296
-                $content = str_replace("\n", "\033[30;1m\\n\033[0m", $content);
297
-            }
298
-
299
-            if (in_array("\t", $exclude, true) === false) {
300
-                $content = str_replace("\t", "\033[30;1m\\t\033[0m", $content);
301
-            }
302
-
303
-            if (in_array(' ', $exclude, true) === false) {
304
-                $content = str_replace(' ', "\033[30;1m·\033[0m", $content);
305
-            }
306
-        }//end if
307
-
308
-        return $content;
309
-
310
-    }//end prepareForOutput()
311
-
312
-
313
-    /**
314
-     * Returns true if the specified string is in the camel caps format.
315
-     *
316
-     * @param string  $string      The string the verify.
317
-     * @param boolean $classFormat If true, check to see if the string is in the
318
-     *                             class format. Class format strings must start
319
-     *                             with a capital letter and contain no
320
-     *                             underscores.
321
-     * @param boolean $public      If true, the first character in the string
322
-     *                             must be an a-z character. If false, the
323
-     *                             character must be an underscore. This
324
-     *                             argument is only applicable if $classFormat
325
-     *                             is false.
326
-     * @param boolean $strict      If true, the string must not have two capital
327
-     *                             letters next to each other. If false, a
328
-     *                             relaxed camel caps policy is used to allow
329
-     *                             for acronyms.
330
-     *
331
-     * @return boolean
332
-     */
333
-    public static function isCamelCaps(
334
-        $string,
335
-        $classFormat=false,
336
-        $public=true,
337
-        $strict=true
338
-    ) {
339
-        // Check the first character first.
340
-        if ($classFormat === false) {
341
-            $legalFirstChar = '';
342
-            if ($public === false) {
343
-                $legalFirstChar = '[_]';
344
-            }
345
-
346
-            if ($strict === false) {
347
-                // Can either start with a lowercase letter, or multiple uppercase
348
-                // in a row, representing an acronym.
349
-                $legalFirstChar .= '([A-Z]{2,}|[a-z])';
350
-            } else {
351
-                $legalFirstChar .= '[a-z]';
352
-            }
353
-        } else {
354
-            $legalFirstChar = '[A-Z]';
355
-        }
356
-
357
-        if (preg_match("/^$legalFirstChar/", $string) === 0) {
358
-            return false;
359
-        }
360
-
361
-        // Check that the name only contains legal characters.
362
-        $legalChars = 'a-zA-Z0-9';
363
-        if (preg_match("|[^$legalChars]|", substr($string, 1)) > 0) {
364
-            return false;
365
-        }
366
-
367
-        if ($strict === true) {
368
-            // Check that there are not two capital letters next to each other.
369
-            $length          = strlen($string);
370
-            $lastCharWasCaps = $classFormat;
371
-
372
-            for ($i = 1; $i < $length; $i++) {
373
-                $ascii = ord($string[$i]);
374
-                if ($ascii >= 48 && $ascii <= 57) {
375
-                    // The character is a number, so it cant be a capital.
376
-                    $isCaps = false;
377
-                } else {
378
-                    if (strtoupper($string[$i]) === $string[$i]) {
379
-                        $isCaps = true;
380
-                    } else {
381
-                        $isCaps = false;
382
-                    }
383
-                }
384
-
385
-                if ($isCaps === true && $lastCharWasCaps === true) {
386
-                    return false;
387
-                }
388
-
389
-                $lastCharWasCaps = $isCaps;
390
-            }
391
-        }//end if
392
-
393
-        return true;
394
-
395
-    }//end isCamelCaps()
396
-
397
-
398
-    /**
399
-     * Returns true if the specified string is in the underscore caps format.
400
-     *
401
-     * @param string $string The string to verify.
402
-     *
403
-     * @return boolean
404
-     */
405
-    public static function isUnderscoreName($string)
406
-    {
407
-        // If there are space in the name, it can't be valid.
408
-        if (strpos($string, ' ') !== false) {
409
-            return false;
410
-        }
411
-
412
-        $validName = true;
413
-        $nameBits  = explode('_', $string);
414
-
415
-        if (preg_match('|^[A-Z]|', $string) === 0) {
416
-            // Name does not begin with a capital letter.
417
-            $validName = false;
418
-        } else {
419
-            foreach ($nameBits as $bit) {
420
-                if ($bit === '') {
421
-                    continue;
422
-                }
423
-
424
-                if ($bit[0] !== strtoupper($bit[0])) {
425
-                    $validName = false;
426
-                    break;
427
-                }
428
-            }
429
-        }
430
-
431
-        return $validName;
432
-
433
-    }//end isUnderscoreName()
434
-
435
-
436
-    /**
437
-     * Returns a valid variable type for param/var tags.
438
-     *
439
-     * If type is not one of the standard types, it must be a custom type.
440
-     * Returns the correct type name suggestion if type name is invalid.
441
-     *
442
-     * @param string $varType The variable type to process.
443
-     *
444
-     * @return string
445
-     */
446
-    public static function suggestType($varType)
447
-    {
448
-        if ($varType === '') {
449
-            return '';
450
-        }
451
-
452
-        if (in_array($varType, self::$allowedTypes, true) === true) {
453
-            return $varType;
454
-        } else {
455
-            $lowerVarType = strtolower($varType);
456
-            switch ($lowerVarType) {
457
-            case 'bool':
458
-            case 'boolean':
459
-                return 'boolean';
460
-            case 'double':
461
-            case 'real':
462
-            case 'float':
463
-                return 'float';
464
-            case 'int':
465
-            case 'integer':
466
-                return 'integer';
467
-            case 'array()':
468
-            case 'array':
469
-                return 'array';
470
-            }//end switch
471
-
472
-            if (strpos($lowerVarType, 'array(') !== false) {
473
-                // Valid array declaration:
474
-                // array, array(type), array(type1 => type2).
475
-                $matches = [];
476
-                $pattern = '/^array\(\s*([^\s^=^>]*)(\s*=>\s*(.*))?\s*\)/i';
477
-                if (preg_match($pattern, $varType, $matches) !== 0) {
478
-                    $type1 = '';
479
-                    if (isset($matches[1]) === true) {
480
-                        $type1 = $matches[1];
481
-                    }
482
-
483
-                    $type2 = '';
484
-                    if (isset($matches[3]) === true) {
485
-                        $type2 = $matches[3];
486
-                    }
487
-
488
-                    $type1 = self::suggestType($type1);
489
-                    $type2 = self::suggestType($type2);
490
-                    if ($type2 !== '') {
491
-                        $type2 = ' => '.$type2;
492
-                    }
493
-
494
-                    return "array($type1$type2)";
495
-                } else {
496
-                    return 'array';
497
-                }//end if
498
-            } else if (in_array($lowerVarType, self::$allowedTypes, true) === true) {
499
-                // A valid type, but not lower cased.
500
-                return $lowerVarType;
501
-            } else {
502
-                // Must be a custom type name.
503
-                return $varType;
504
-            }//end if
505
-        }//end if
506
-
507
-    }//end suggestType()
508
-
509
-
510
-    /**
511
-     * Given a sniff class name, returns the code for the sniff.
512
-     *
513
-     * @param string $sniffClass The fully qualified sniff class name.
514
-     *
515
-     * @return string
516
-     */
517
-    public static function getSniffCode($sniffClass)
518
-    {
519
-        $parts = explode('\\', $sniffClass);
520
-        $sniff = array_pop($parts);
521
-
522
-        if (substr($sniff, -5) === 'Sniff') {
523
-            // Sniff class name.
524
-            $sniff = substr($sniff, 0, -5);
525
-        } else {
526
-            // Unit test class name.
527
-            $sniff = substr($sniff, 0, -8);
528
-        }
529
-
530
-        $category = array_pop($parts);
531
-        $sniffDir = array_pop($parts);
532
-        $standard = array_pop($parts);
533
-        $code     = $standard.'.'.$category.'.'.$sniff;
534
-        return $code;
535
-
536
-    }//end getSniffCode()
537
-
538
-
539
-    /**
540
-     * Removes project-specific information from a sniff class name.
541
-     *
542
-     * @param string $sniffClass The fully qualified sniff class name.
543
-     *
544
-     * @return string
545
-     */
546
-    public static function cleanSniffClass($sniffClass)
547
-    {
548
-        $newName = strtolower($sniffClass);
549
-
550
-        $sniffPos = strrpos($newName, '\sniffs\\');
551
-        if ($sniffPos === false) {
552
-            // Nothing we can do as it isn't in a known format.
553
-            return $newName;
554
-        }
555
-
556
-        $end   = (strlen($newName) - $sniffPos + 1);
557
-        $start = strrpos($newName, '\\', ($end * -1));
558
-
559
-        if ($start === false) {
560
-            // Nothing needs to be cleaned.
561
-            return $newName;
562
-        }
563
-
564
-        $newName = substr($newName, ($start + 1));
565
-        return $newName;
566
-
567
-    }//end cleanSniffClass()
15
+	/**
16
+	 * An array of variable types for param/var we will check.
17
+	 *
18
+	 * @var string[]
19
+	 */
20
+	public static $allowedTypes = [
21
+		'array',
22
+		'boolean',
23
+		'float',
24
+		'integer',
25
+		'mixed',
26
+		'object',
27
+		'string',
28
+		'resource',
29
+		'callable',
30
+	];
31
+
32
+
33
+	/**
34
+	 * Return TRUE if the path is a PHAR file.
35
+	 *
36
+	 * @param string $path The path to use.
37
+	 *
38
+	 * @return mixed
39
+	 */
40
+	public static function isPharFile($path)
41
+	{
42
+		if (strpos($path, 'phar://') === 0) {
43
+			return true;
44
+		}
45
+
46
+		return false;
47
+
48
+	}//end isPharFile()
49
+
50
+
51
+	/**
52
+	 * Checks if a file is readable.
53
+	 *
54
+	 * Addresses PHP bug related to reading files from network drives on Windows.
55
+	 * e.g. when using WSL2.
56
+	 *
57
+	 * @param string $path The path to the file.
58
+	 *
59
+	 * @return boolean
60
+	 */
61
+	public static function isReadable($path)
62
+	{
63
+		if (@is_readable($path) === true) {
64
+			return true;
65
+		}
66
+
67
+		if (@file_exists($path) === true && @is_file($path) === true) {
68
+			$f = @fopen($path, 'rb');
69
+			if (fclose($f) === true) {
70
+				return true;
71
+			}
72
+		}
73
+
74
+		return false;
75
+
76
+	}//end isReadable()
77
+
78
+
79
+	/**
80
+	 * CodeSniffer alternative for realpath.
81
+	 *
82
+	 * Allows for PHAR support.
83
+	 *
84
+	 * @param string $path The path to use.
85
+	 *
86
+	 * @return mixed
87
+	 */
88
+	public static function realpath($path)
89
+	{
90
+		// Support the path replacement of ~ with the user's home directory.
91
+		if (substr($path, 0, 2) === '~/') {
92
+			$homeDir = getenv('HOME');
93
+			if ($homeDir !== false) {
94
+				$path = $homeDir.substr($path, 1);
95
+			}
96
+		}
97
+
98
+		// Check for process substitution.
99
+		if (strpos($path, '/dev/fd') === 0) {
100
+			return str_replace('/dev/fd', 'php://fd', $path);
101
+		}
102
+
103
+		// No extra work needed if this is not a phar file.
104
+		if (self::isPharFile($path) === false) {
105
+			return realpath($path);
106
+		}
107
+
108
+		// Before trying to break down the file path,
109
+		// check if it exists first because it will mostly not
110
+		// change after running the below code.
111
+		if (file_exists($path) === true) {
112
+			return $path;
113
+		}
114
+
115
+		$phar  = \Phar::running(false);
116
+		$extra = str_replace('phar://'.$phar, '', $path);
117
+		$path  = realpath($phar);
118
+		if ($path === false) {
119
+			return false;
120
+		}
121
+
122
+		$path = 'phar://'.$path.$extra;
123
+		if (file_exists($path) === true) {
124
+			return $path;
125
+		}
126
+
127
+		return false;
128
+
129
+	}//end realpath()
130
+
131
+
132
+	/**
133
+	 * Removes a base path from the front of a file path.
134
+	 *
135
+	 * @param string $path     The path of the file.
136
+	 * @param string $basepath The base path to remove. This should not end
137
+	 *                         with a directory separator.
138
+	 *
139
+	 * @return string
140
+	 */
141
+	public static function stripBasepath($path, $basepath)
142
+	{
143
+		if (empty($basepath) === true) {
144
+			return $path;
145
+		}
146
+
147
+		$basepathLen = strlen($basepath);
148
+		if (substr($path, 0, $basepathLen) === $basepath) {
149
+			$path = substr($path, $basepathLen);
150
+		}
151
+
152
+		$path = ltrim($path, DIRECTORY_SEPARATOR);
153
+		if ($path === '') {
154
+			$path = '.';
155
+		}
156
+
157
+		return $path;
158
+
159
+	}//end stripBasepath()
160
+
161
+
162
+	/**
163
+	 * Detects the EOL character being used in a string.
164
+	 *
165
+	 * @param string $contents The contents to check.
166
+	 *
167
+	 * @return string
168
+	 */
169
+	public static function detectLineEndings($contents)
170
+	{
171
+		if (preg_match("/\r\n?|\n/", $contents, $matches) !== 1) {
172
+			// Assume there are no newlines.
173
+			$eolChar = "\n";
174
+		} else {
175
+			$eolChar = $matches[0];
176
+		}
177
+
178
+		return $eolChar;
179
+
180
+	}//end detectLineEndings()
181
+
182
+
183
+	/**
184
+	 * Check if STDIN is a TTY.
185
+	 *
186
+	 * @return boolean
187
+	 */
188
+	public static function isStdinATTY()
189
+	{
190
+		// The check is slow (especially calling `tty`) so we static
191
+		// cache the result.
192
+		static $isTTY = null;
193
+
194
+		if ($isTTY !== null) {
195
+			return $isTTY;
196
+		}
197
+
198
+		if (defined('STDIN') === false) {
199
+			return false;
200
+		}
201
+
202
+		// If PHP has the POSIX extensions we will use them.
203
+		if (function_exists('posix_isatty') === true) {
204
+			$isTTY = (posix_isatty(STDIN) === true);
205
+			return $isTTY;
206
+		}
207
+
208
+		// Next try is detecting whether we have `tty` installed and use that.
209
+		if (defined('PHP_WINDOWS_VERSION_PLATFORM') === true) {
210
+			$devnull = 'NUL';
211
+			$which   = 'where';
212
+		} else {
213
+			$devnull = '/dev/null';
214
+			$which   = 'which';
215
+		}
216
+
217
+		$tty = trim(shell_exec("$which tty 2> $devnull"));
218
+		if (empty($tty) === false) {
219
+			exec("tty -s 2> $devnull", $output, $returnValue);
220
+			$isTTY = ($returnValue === 0);
221
+			return $isTTY;
222
+		}
223
+
224
+		// Finally we will use fstat.  The solution borrowed from
225
+		// https://stackoverflow.com/questions/11327367/detect-if-a-php-script-is-being-run-interactively-or-not
226
+		// This doesn't work on Mingw/Cygwin/... using Mintty but they
227
+		// have `tty` installed.
228
+		$type = [
229
+			'S_IFMT'  => 0170000,
230
+			'S_IFIFO' => 0010000,
231
+		];
232
+
233
+		$stat  = fstat(STDIN);
234
+		$mode  = ($stat['mode'] & $type['S_IFMT']);
235
+		$isTTY = ($mode !== $type['S_IFIFO']);
236
+
237
+		return $isTTY;
238
+
239
+	}//end isStdinATTY()
240
+
241
+
242
+	/**
243
+	 * Escape a path to a system command.
244
+	 *
245
+	 * @param string $cmd The path to the system command.
246
+	 *
247
+	 * @return string
248
+	 */
249
+	public static function escapeshellcmd($cmd)
250
+	{
251
+		$cmd = escapeshellcmd($cmd);
252
+
253
+		if (stripos(PHP_OS, 'WIN') === 0) {
254
+			// Spaces are not escaped by escapeshellcmd on Windows, but need to be
255
+			// for the command to be able to execute.
256
+			$cmd = preg_replace('`(?<!^) `', '^ ', $cmd);
257
+		}
258
+
259
+		return $cmd;
260
+
261
+	}//end escapeshellcmd()
262
+
263
+
264
+	/**
265
+	 * Prepares token content for output to screen.
266
+	 *
267
+	 * Replaces invisible characters so they are visible. On non-Windows
268
+	 * operating systems it will also colour the invisible characters.
269
+	 *
270
+	 * @param string   $content The content to prepare.
271
+	 * @param string[] $exclude A list of characters to leave invisible.
272
+	 *                          Can contain \r, \n, \t and a space.
273
+	 *
274
+	 * @return string
275
+	 */
276
+	public static function prepareForOutput($content, $exclude=[])
277
+	{
278
+		if (stripos(PHP_OS, 'WIN') === 0) {
279
+			if (in_array("\r", $exclude, true) === false) {
280
+				$content = str_replace("\r", '\r', $content);
281
+			}
282
+
283
+			if (in_array("\n", $exclude, true) === false) {
284
+				$content = str_replace("\n", '\n', $content);
285
+			}
286
+
287
+			if (in_array("\t", $exclude, true) === false) {
288
+				$content = str_replace("\t", '\t', $content);
289
+			}
290
+		} else {
291
+			if (in_array("\r", $exclude, true) === false) {
292
+				$content = str_replace("\r", "\033[30;1m\\r\033[0m", $content);
293
+			}
294
+
295
+			if (in_array("\n", $exclude, true) === false) {
296
+				$content = str_replace("\n", "\033[30;1m\\n\033[0m", $content);
297
+			}
298
+
299
+			if (in_array("\t", $exclude, true) === false) {
300
+				$content = str_replace("\t", "\033[30;1m\\t\033[0m", $content);
301
+			}
302
+
303
+			if (in_array(' ', $exclude, true) === false) {
304
+				$content = str_replace(' ', "\033[30;1m·\033[0m", $content);
305
+			}
306
+		}//end if
307
+
308
+		return $content;
309
+
310
+	}//end prepareForOutput()
311
+
312
+
313
+	/**
314
+	 * Returns true if the specified string is in the camel caps format.
315
+	 *
316
+	 * @param string  $string      The string the verify.
317
+	 * @param boolean $classFormat If true, check to see if the string is in the
318
+	 *                             class format. Class format strings must start
319
+	 *                             with a capital letter and contain no
320
+	 *                             underscores.
321
+	 * @param boolean $public      If true, the first character in the string
322
+	 *                             must be an a-z character. If false, the
323
+	 *                             character must be an underscore. This
324
+	 *                             argument is only applicable if $classFormat
325
+	 *                             is false.
326
+	 * @param boolean $strict      If true, the string must not have two capital
327
+	 *                             letters next to each other. If false, a
328
+	 *                             relaxed camel caps policy is used to allow
329
+	 *                             for acronyms.
330
+	 *
331
+	 * @return boolean
332
+	 */
333
+	public static function isCamelCaps(
334
+		$string,
335
+		$classFormat=false,
336
+		$public=true,
337
+		$strict=true
338
+	) {
339
+		// Check the first character first.
340
+		if ($classFormat === false) {
341
+			$legalFirstChar = '';
342
+			if ($public === false) {
343
+				$legalFirstChar = '[_]';
344
+			}
345
+
346
+			if ($strict === false) {
347
+				// Can either start with a lowercase letter, or multiple uppercase
348
+				// in a row, representing an acronym.
349
+				$legalFirstChar .= '([A-Z]{2,}|[a-z])';
350
+			} else {
351
+				$legalFirstChar .= '[a-z]';
352
+			}
353
+		} else {
354
+			$legalFirstChar = '[A-Z]';
355
+		}
356
+
357
+		if (preg_match("/^$legalFirstChar/", $string) === 0) {
358
+			return false;
359
+		}
360
+
361
+		// Check that the name only contains legal characters.
362
+		$legalChars = 'a-zA-Z0-9';
363
+		if (preg_match("|[^$legalChars]|", substr($string, 1)) > 0) {
364
+			return false;
365
+		}
366
+
367
+		if ($strict === true) {
368
+			// Check that there are not two capital letters next to each other.
369
+			$length          = strlen($string);
370
+			$lastCharWasCaps = $classFormat;
371
+
372
+			for ($i = 1; $i < $length; $i++) {
373
+				$ascii = ord($string[$i]);
374
+				if ($ascii >= 48 && $ascii <= 57) {
375
+					// The character is a number, so it cant be a capital.
376
+					$isCaps = false;
377
+				} else {
378
+					if (strtoupper($string[$i]) === $string[$i]) {
379
+						$isCaps = true;
380
+					} else {
381
+						$isCaps = false;
382
+					}
383
+				}
384
+
385
+				if ($isCaps === true && $lastCharWasCaps === true) {
386
+					return false;
387
+				}
388
+
389
+				$lastCharWasCaps = $isCaps;
390
+			}
391
+		}//end if
392
+
393
+		return true;
394
+
395
+	}//end isCamelCaps()
396
+
397
+
398
+	/**
399
+	 * Returns true if the specified string is in the underscore caps format.
400
+	 *
401
+	 * @param string $string The string to verify.
402
+	 *
403
+	 * @return boolean
404
+	 */
405
+	public static function isUnderscoreName($string)
406
+	{
407
+		// If there are space in the name, it can't be valid.
408
+		if (strpos($string, ' ') !== false) {
409
+			return false;
410
+		}
411
+
412
+		$validName = true;
413
+		$nameBits  = explode('_', $string);
414
+
415
+		if (preg_match('|^[A-Z]|', $string) === 0) {
416
+			// Name does not begin with a capital letter.
417
+			$validName = false;
418
+		} else {
419
+			foreach ($nameBits as $bit) {
420
+				if ($bit === '') {
421
+					continue;
422
+				}
423
+
424
+				if ($bit[0] !== strtoupper($bit[0])) {
425
+					$validName = false;
426
+					break;
427
+				}
428
+			}
429
+		}
430
+
431
+		return $validName;
432
+
433
+	}//end isUnderscoreName()
434
+
435
+
436
+	/**
437
+	 * Returns a valid variable type for param/var tags.
438
+	 *
439
+	 * If type is not one of the standard types, it must be a custom type.
440
+	 * Returns the correct type name suggestion if type name is invalid.
441
+	 *
442
+	 * @param string $varType The variable type to process.
443
+	 *
444
+	 * @return string
445
+	 */
446
+	public static function suggestType($varType)
447
+	{
448
+		if ($varType === '') {
449
+			return '';
450
+		}
451
+
452
+		if (in_array($varType, self::$allowedTypes, true) === true) {
453
+			return $varType;
454
+		} else {
455
+			$lowerVarType = strtolower($varType);
456
+			switch ($lowerVarType) {
457
+			case 'bool':
458
+			case 'boolean':
459
+				return 'boolean';
460
+			case 'double':
461
+			case 'real':
462
+			case 'float':
463
+				return 'float';
464
+			case 'int':
465
+			case 'integer':
466
+				return 'integer';
467
+			case 'array()':
468
+			case 'array':
469
+				return 'array';
470
+			}//end switch
471
+
472
+			if (strpos($lowerVarType, 'array(') !== false) {
473
+				// Valid array declaration:
474
+				// array, array(type), array(type1 => type2).
475
+				$matches = [];
476
+				$pattern = '/^array\(\s*([^\s^=^>]*)(\s*=>\s*(.*))?\s*\)/i';
477
+				if (preg_match($pattern, $varType, $matches) !== 0) {
478
+					$type1 = '';
479
+					if (isset($matches[1]) === true) {
480
+						$type1 = $matches[1];
481
+					}
482
+
483
+					$type2 = '';
484
+					if (isset($matches[3]) === true) {
485
+						$type2 = $matches[3];
486
+					}
487
+
488
+					$type1 = self::suggestType($type1);
489
+					$type2 = self::suggestType($type2);
490
+					if ($type2 !== '') {
491
+						$type2 = ' => '.$type2;
492
+					}
493
+
494
+					return "array($type1$type2)";
495
+				} else {
496
+					return 'array';
497
+				}//end if
498
+			} else if (in_array($lowerVarType, self::$allowedTypes, true) === true) {
499
+				// A valid type, but not lower cased.
500
+				return $lowerVarType;
501
+			} else {
502
+				// Must be a custom type name.
503
+				return $varType;
504
+			}//end if
505
+		}//end if
506
+
507
+	}//end suggestType()
508
+
509
+
510
+	/**
511
+	 * Given a sniff class name, returns the code for the sniff.
512
+	 *
513
+	 * @param string $sniffClass The fully qualified sniff class name.
514
+	 *
515
+	 * @return string
516
+	 */
517
+	public static function getSniffCode($sniffClass)
518
+	{
519
+		$parts = explode('\\', $sniffClass);
520
+		$sniff = array_pop($parts);
521
+
522
+		if (substr($sniff, -5) === 'Sniff') {
523
+			// Sniff class name.
524
+			$sniff = substr($sniff, 0, -5);
525
+		} else {
526
+			// Unit test class name.
527
+			$sniff = substr($sniff, 0, -8);
528
+		}
529
+
530
+		$category = array_pop($parts);
531
+		$sniffDir = array_pop($parts);
532
+		$standard = array_pop($parts);
533
+		$code     = $standard.'.'.$category.'.'.$sniff;
534
+		return $code;
535
+
536
+	}//end getSniffCode()
537
+
538
+
539
+	/**
540
+	 * Removes project-specific information from a sniff class name.
541
+	 *
542
+	 * @param string $sniffClass The fully qualified sniff class name.
543
+	 *
544
+	 * @return string
545
+	 */
546
+	public static function cleanSniffClass($sniffClass)
547
+	{
548
+		$newName = strtolower($sniffClass);
549
+
550
+		$sniffPos = strrpos($newName, '\sniffs\\');
551
+		if ($sniffPos === false) {
552
+			// Nothing we can do as it isn't in a known format.
553
+			return $newName;
554
+		}
555
+
556
+		$end   = (strlen($newName) - $sniffPos + 1);
557
+		$start = strrpos($newName, '\\', ($end * -1));
558
+
559
+		if ($start === false) {
560
+			// Nothing needs to be cleaned.
561
+			return $newName;
562
+		}
563
+
564
+		$newName = substr($newName, ($start + 1));
565
+		return $newName;
566
+
567
+	}//end cleanSniffClass()
568 568
 
569 569
 
570 570
 }//end class
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
      *
274 274
      * @return string
275 275
      */
276
-    public static function prepareForOutput($content, $exclude=[])
276
+    public static function prepareForOutput($content, $exclude = [])
277 277
     {
278 278
         if (stripos(PHP_OS, 'WIN') === 0) {
279 279
             if (in_array("\r", $exclude, true) === false) {
@@ -332,9 +332,9 @@  discard block
 block discarded – undo
332 332
      */
333 333
     public static function isCamelCaps(
334 334
         $string,
335
-        $classFormat=false,
336
-        $public=true,
337
-        $strict=true
335
+        $classFormat = false,
336
+        $public = true,
337
+        $strict = true
338 338
     ) {
339 339
         // Check the first character first.
340 340
         if ($classFormat === false) {
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.php 1 patch
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -15,45 +15,45 @@
 block discarded – undo
15 15
 {
16 16
 
17 17
 
18
-    /**
19
-     * Returns the lines where errors should occur.
20
-     *
21
-     * The key of the array should represent the line number and the value
22
-     * should represent the number of errors that should occur on that line.
23
-     *
24
-     * @return array<int, int>
25
-     */
26
-    public function getErrorList()
27
-    {
28
-        return [
29
-            4  => 1,
30
-            5  => 1,
31
-            6  => 1,
32
-            7  => 1,
33
-            8  => 1,
34
-            9  => 1,
35
-            11 => 1,
36
-            12 => 1,
37
-            13 => 1,
38
-            14 => 2,
39
-        ];
40
-
41
-    }//end getErrorList()
42
-
43
-
44
-    /**
45
-     * Returns the lines where warnings should occur.
46
-     *
47
-     * The key of the array should represent the line number and the value
48
-     * should represent the number of warnings that should occur on that line.
49
-     *
50
-     * @return array<int, int>
51
-     */
52
-    public function getWarningList()
53
-    {
54
-        return [];
55
-
56
-    }//end getWarningList()
18
+	/**
19
+	 * Returns the lines where errors should occur.
20
+	 *
21
+	 * The key of the array should represent the line number and the value
22
+	 * should represent the number of errors that should occur on that line.
23
+	 *
24
+	 * @return array<int, int>
25
+	 */
26
+	public function getErrorList()
27
+	{
28
+		return [
29
+			4  => 1,
30
+			5  => 1,
31
+			6  => 1,
32
+			7  => 1,
33
+			8  => 1,
34
+			9  => 1,
35
+			11 => 1,
36
+			12 => 1,
37
+			13 => 1,
38
+			14 => 2,
39
+		];
40
+
41
+	}//end getErrorList()
42
+
43
+
44
+	/**
45
+	 * Returns the lines where warnings should occur.
46
+	 *
47
+	 * The key of the array should represent the line number and the value
48
+	 * should represent the number of warnings that should occur on that line.
49
+	 *
50
+	 * @return array<int, int>
51
+	 */
52
+	public function getWarningList()
53
+	{
54
+		return [];
55
+
56
+	}//end getWarningList()
57 57
 
58 58
 
59 59
 }//end class
Please login to merge, or discard this patch.
src/Standards/Squiz/Tests/NamingConventions/ValidFunctionNameUnitTest.inc 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@
 block discarded – undo
21 21
 /* @codingStandardsIgnoreStart */
22 22
 class MyClass
23 23
 {
24
-    /* @codingStandardsIgnoreEnd */
25
-    public function __construct() {}
24
+	/* @codingStandardsIgnoreEnd */
25
+	public function __construct() {}
26 26
 }
27 27
 ?>
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@
 block discarded – undo
16 16
 function XMLParser() {}
17 17
 function xmlParser() {}
18 18
 
19
-echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world');
19
+echo preg_replace_callback('~-([a-z])~', function($match) { return strtoupper($match[1]); }, 'hello-world');
20 20
 
21 21
 /* @codingStandardsIgnoreStart */
22 22
 class MyClass
Please login to merge, or discard this patch.