From 807f764ff87dd92f5074c21540203fefc67f7f24 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:16:57 -0800 Subject: [PATCH 1/7] Update .php_cs.dist --- .php_cs.dist | 161 +++++++++++---------------------------------------- 1 file changed, 35 insertions(+), 126 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index fce965539..cce8c9a20 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -3,138 +3,47 @@ return PhpCsFixer\Config::create() ->setRiskyAllowed(true) ->setRules([ + // Rulesets + '@PSR2' => true, + '@PhpCsFixer' => true, + '@PhpCsFixer:risky' => true, '@PHP56Migration:risky' => true, '@PHPUnit57Migration:risky' => true, - '@PSR2' => true, - 'align_multiline_comment' => true, - 'array_indentation' => true, - 'array_syntax' => ['syntax' => 'short'], - 'blank_line_after_opening_tag' => true, - 'cast_spaces' => true, - 'class_attributes_separation' => [ - 'elements' => ['method'], - ], - 'class_definition' => true, - 'combine_consecutive_unsets' => true, - 'comment_to_phpdoc' => true, - 'compact_nullable_typehint' => true, + + // Diffs from @PhpCsFixer / @PhpCsFixer:risky + 'binary_operator_spaces' => false, + 'blank_line_before_statement' => false, 'concat_space' => [ 'spacing' => 'one', ], - 'declare_equal_normalize' => true, - 'ereg_to_preg' => true, - 'error_suppression' => true, - 'escape_implicit_backslashes' => true, - 'explicit_string_variable' => true, - 'final_internal_class' => true, - 'fopen_flag_order' => true, - 'fopen_flags' => true, - 'fully_qualified_strict_types' => true, - 'function_to_constant' => true, - 'function_typehint_space' => true, - 'heredoc_to_nowdoc' => true, - 'implode_call' => true, - 'increment_style' => true, - 'is_null' => true, - 'linebreak_after_opening_tag' => true, - 'logical_operators' => true, - 'lowercase_cast' => true, - 'lowercase_static_reference' => true, - 'magic_constant_casing' => true, - 'magic_method_casing' => true, - 'method_chaining_indentation' => true, - 'modernize_types_casting' => true, - 'multiline_comment_opening_closing' => true, - 'multiline_whitespace_before_semicolons' => true, - 'native_constant_invocation' => true, - 'native_function_casing' => true, - 'native_function_invocation' => true, - 'native_function_type_declaration_casing' => true, - 'new_with_braces' => true, - 'no_alias_functions' => true, - 'no_alternative_syntax' => true, - 'no_binary_string' => true, - 'no_blank_lines_after_class_opening' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_empty_comment' => true, - 'no_empty_phpdoc' => true, - 'no_empty_statement' => true, - 'no_extra_blank_lines' => true, - 'no_homoglyph_names' => true, - 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_mixed_echo_print' => true, - 'no_multiline_whitespace_around_double_arrow' => true, - 'no_null_property_initialization' => true, - 'no_short_bool_cast' => true, - 'no_short_echo_tag' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_spaces_around_offset' => true, - 'no_superfluous_elseif' => true, - 'no_trailing_comma_in_list_call' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_unneeded_control_parentheses' => true, - 'no_unneeded_curly_braces' => true, - 'no_unneeded_final_method' => true, - 'no_unreachable_default_argument_value' => true, - 'no_unset_cast' => true, - 'no_unused_imports' => true, - 'no_useless_else' => true, - 'no_useless_return' => true, - 'no_whitespace_before_comma_in_array' => true, - 'no_whitespace_in_blank_line' => true, - 'non_printable_character' => true, - 'normalize_index_brace' => true, - 'object_operator_without_whitespace' => true, - 'phpdoc_add_missing_param_annotation' => true, - 'phpdoc_indent' => true, - 'phpdoc_inline_tag' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_alias_tag' => true, - 'phpdoc_no_empty_return' => true, - 'phpdoc_no_useless_inheritdoc' => true, - 'phpdoc_order' => true, - 'phpdoc_return_self_reference' => true, - 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_trim_consecutive_blank_line_separation' => true, - 'phpdoc_types' => true, + 'dir_constant' => false, + 'explicit_indirect_variable' => false, + 'function_to_constant' => false, + 'include' => false, + 'no_superfluous_phpdoc_tags' => false, + 'no_unset_on_property' => false, + 'ordered_class_elements' => false, + 'ordered_imports' => false, + 'php_unit_internal_class' => false, + 'php_unit_strict' => false, + 'php_unit_test_class_requires_covers' => false, + 'phpdoc_align' => false, + 'phpdoc_annotation_without_dot' => false, + 'phpdoc_no_package' => false, + 'phpdoc_summary' => false, 'phpdoc_types_order' => [ 'null_adjustment' => 'always_last', ], - 'phpdoc_var_annotation_correct_order' => true, - 'phpdoc_var_without_name' => true, - 'php_unit_construct' => true, - 'php_unit_fqcn_annotation' => true, - 'php_unit_method_casing' => true, - 'php_unit_mock_short_will_return' => true, - 'php_unit_ordered_covers' => true, - 'php_unit_set_up_tear_down_visibility' => true, - 'php_unit_test_annotation' => true, - 'php_unit_test_case_static_method_calls' => true, - 'psr4' => true, - 'return_assignment' => true, - 'return_type_declaration' => true, - 'semicolon_after_instruction' => true, - 'set_type_to_cast' => true, - 'short_scalar_cast' => true, - 'simple_to_complex_string_variable' => true, - 'single_blank_line_before_namespace' => true, - 'single_line_comment_style' => true, - 'single_trait_insert_per_statement' => true, - 'space_after_semicolon' => true, - 'standardize_increment' => true, - 'standardize_not_equals' => true, - 'strict_comparison' => true, - 'strict_param' => true, - 'string_line_ending' => true, - 'ternary_operator_spaces' => true, - 'trailing_comma_in_multiline_array' => true, - 'trim_array_spaces' => true, - 'unary_operator_spaces' => true, - 'whitespace_after_comma_in_array' => true, - 'yoda_style' => true, + 'protected_to_private' => false, + 'self_accessor' => false, + 'single_quote' => false, + + // Should be included in @PhpCsFixer / @PhpCsFixer:risky according to doc, but need to be + // enabled manually for some reason. + 'fopen_flags' => true, + 'multiline_whitespace_before_semicolons' => true, + 'native_function_invocation' => true, + + // Additional rules + 'linebreak_after_opening_tag' => true, ]); From 80d785bcbe6d5d6b93bcf19ac8342f552474b0e1 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:17:48 -0800 Subject: [PATCH 2/7] Enable combine_consecutive_issets rule --- lib/ApiRequestor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ApiRequestor.php b/lib/ApiRequestor.php index 89dadc819..3e2df1bd2 100644 --- a/lib/ApiRequestor.php +++ b/lib/ApiRequestor.php @@ -371,7 +371,7 @@ private function _requestRaw($method, $url, $params, $headers) $hasFile ); - if (isset($rheaders['request-id']) && isset($rheaders['request-id'][0])) { + if (isset($rheaders['request-id'], $rheaders['request-id'][0])) { self::$requestTelemetry = new RequestTelemetry( $rheaders['request-id'][0], Util\Util::currentTimeMillis() - $requestStartMs From de9a6908c903a50d344dd5bc0668428bc1b4336e Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:27:05 -0800 Subject: [PATCH 3/7] Enable explicit_indirect_variable rule --- .php_cs.dist | 1 - lib/ApiResource.php | 2 +- lib/StripeObject.php | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index cce8c9a20..e7c0e1198 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -17,7 +17,6 @@ return PhpCsFixer\Config::create() 'spacing' => 'one', ], 'dir_constant' => false, - 'explicit_indirect_variable' => false, 'function_to_constant' => false, 'include' => false, 'no_superfluous_phpdoc_tags' => false, diff --git a/lib/ApiResource.php b/lib/ApiResource.php index 555b190be..9f7746f9c 100644 --- a/lib/ApiResource.php +++ b/lib/ApiResource.php @@ -39,7 +39,7 @@ public static function getSavedNestedResources() public function __set($k, $v) { parent::__set($k, $v); - $v = $this->$k; + $v = $this->{$k}; if ((static::getSavedNestedResources()->includes($k)) && ($v instanceof ApiResource)) { $v->saveWithParent = true; diff --git a/lib/StripeObject.php b/lib/StripeObject.php index 6f73f5ed2..434eab472 100644 --- a/lib/StripeObject.php +++ b/lib/StripeObject.php @@ -180,7 +180,7 @@ public function __debugInfo() // ArrayAccess methods public function offsetSet($k, $v) { - $this->$k = $v; + $this->{$k} = $v; } public function offsetExists($k) @@ -190,7 +190,7 @@ public function offsetExists($k) public function offsetUnset($k) { - unset($this->$k); + unset($this->{$k}); } public function offsetGet($k) @@ -256,7 +256,7 @@ public function refreshFrom($values, $opts, $partial = false) } foreach ($removed->toArray() as $k) { - unset($this->$k); + unset($this->{$k}); } $this->updateAttributes($values, $opts, false); From 1dd8762db278cc9286c56b1bd08ea4206bd93ff7 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:28:07 -0800 Subject: [PATCH 4/7] Enable no_unset_on_property rule --- .php_cs.dist | 1 - tests/Stripe/StripeObjectTest.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index e7c0e1198..1a19248d9 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -20,7 +20,6 @@ return PhpCsFixer\Config::create() 'function_to_constant' => false, 'include' => false, 'no_superfluous_phpdoc_tags' => false, - 'no_unset_on_property' => false, 'ordered_class_elements' => false, 'ordered_imports' => false, 'php_unit_internal_class' => false, diff --git a/tests/Stripe/StripeObjectTest.php b/tests/Stripe/StripeObjectTest.php index a2cf8bc2a..2a732904c 100644 --- a/tests/Stripe/StripeObjectTest.php +++ b/tests/Stripe/StripeObjectTest.php @@ -43,7 +43,7 @@ public function testNormalAccessorsSemantics() $s->foo = 'a'; static::assertSame($s->foo, 'a'); static::assertTrue(isset($s->foo)); - unset($s->foo); + $s->foo = null; static::assertFalse(isset($s->foo)); } From 8ad618ff0dc8770c63f27f615b2e98b8194db153 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:29:10 -0800 Subject: [PATCH 5/7] Enable function_to_constant rule --- .php_cs.dist | 1 - lib/ApiResource.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index 1a19248d9..2dddb412b 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -17,7 +17,6 @@ return PhpCsFixer\Config::create() 'spacing' => 'one', ], 'dir_constant' => false, - 'function_to_constant' => false, 'include' => false, 'no_superfluous_phpdoc_tags' => false, 'ordered_class_elements' => false, diff --git a/lib/ApiResource.php b/lib/ApiResource.php index 9f7746f9c..7e4f564a9 100644 --- a/lib/ApiResource.php +++ b/lib/ApiResource.php @@ -97,7 +97,7 @@ public static function classUrl() public static function resourceUrl($id) { if (null === $id) { - $class = \get_called_class(); + $class = static::class; $message = "Could not determine which URL to request: " . "{$class} instance has invalid ID: {$id}"; throw new Exception\UnexpectedValueException($message); From 2205ac720120a047975645dc791dff2a9033e16a Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:35:25 -0800 Subject: [PATCH 6/7] Enable no_superfluous_phpdoc_tags rule --- .php_cs.dist | 1 - lib/Util/LoggerInterface.php | 1 - 2 files changed, 2 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index 2dddb412b..436c1e184 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -18,7 +18,6 @@ return PhpCsFixer\Config::create() ], 'dir_constant' => false, 'include' => false, - 'no_superfluous_phpdoc_tags' => false, 'ordered_class_elements' => false, 'ordered_imports' => false, 'php_unit_internal_class' => false, diff --git a/lib/Util/LoggerInterface.php b/lib/Util/LoggerInterface.php index f61629dc9..5603c81b8 100644 --- a/lib/Util/LoggerInterface.php +++ b/lib/Util/LoggerInterface.php @@ -29,7 +29,6 @@ interface LoggerInterface * be logged and monitored. * * @param string $message - * @param array $context */ public function error($message, array $context = []); } From 0085106dc942aea62e4e0e40f1868b7be1e84592 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 11 Feb 2020 19:36:14 -0800 Subject: [PATCH 7/7] Enable ordered_imports rule --- .php_cs.dist | 1 - lib/HttpClient/CurlClient.php | 2 +- lib/Util/Set.php | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.php_cs.dist b/.php_cs.dist index 436c1e184..5b0e16161 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -19,7 +19,6 @@ return PhpCsFixer\Config::create() 'dir_constant' => false, 'include' => false, 'ordered_class_elements' => false, - 'ordered_imports' => false, 'php_unit_internal_class' => false, 'php_unit_strict' => false, 'php_unit_test_class_requires_covers' => false, diff --git a/lib/HttpClient/CurlClient.php b/lib/HttpClient/CurlClient.php index 11b1b7e17..8e5d2a6e0 100644 --- a/lib/HttpClient/CurlClient.php +++ b/lib/HttpClient/CurlClient.php @@ -2,8 +2,8 @@ namespace Stripe\HttpClient; -use Stripe\Stripe; use Stripe\Exception; +use Stripe\Stripe; use Stripe\Util; // @codingStandardsIgnoreStart diff --git a/lib/Util/Set.php b/lib/Util/Set.php index 5c49d28c5..017f92978 100644 --- a/lib/Util/Set.php +++ b/lib/Util/Set.php @@ -2,8 +2,8 @@ namespace Stripe\Util; -use IteratorAggregate; use ArrayIterator; +use IteratorAggregate; class Set implements IteratorAggregate {