From c352e3bc5e8f75004999f348f0771dcea74a0161 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 3 May 2016 15:47:06 +0200 Subject: [PATCH 1/2] More comprehensive scrutinizer config. --- .scrutinizer.yml | 220 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 202 insertions(+), 18 deletions(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index ab3c5f8a..f140f0c8 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -1,19 +1,46 @@ +tools: + php_sim: true + php_pdepend: true + php_analyzer: true + sensiolabs_security_checker: true + checks: php: + useless_calls: true + unused_variables: true + unused_properties: true + unused_parameters: true + unused_methods: true + unreachable_code: true + too_many_arguments: true + no_unnecessary_if: true + no_unnecessary_final_modifier: true + no_empty_statements: true + fix_use_statements: + remove_unused: true + preserve_multiple: false + preserve_blanklines: false + order_alphabetically: true + avoid_useless_overridden_methods: true use_self_instead_of_fqcn: true uppercase_constants: true + single_namespace_per_use: false simplify_boolean_return: true - return_doc_comment_if_not_inferrable: true + require_scope_for_properties: true + require_scope_for_methods: true remove_extra_empty_lines: true + psr2_switch_declaration: true + psr2_class_declaration: true + properties_in_camelcaps: false prefer_while_loop_over_for_loop: true - parameter_doc_comments: true - param_doc_comment_if_not_inferrable: true + parameters_in_camelcaps: false optional_parameters_at_the_end: true - no_short_method_names: - minimum: '3' - no_long_variable_names: - maximum: '25' - no_goto: true + no_underscore_prefix_in_properties: true + no_underscore_prefix_in_methods: true + no_trailing_whitespace: true + no_new_line_at_end_of_file: false + no_error_suppression: false + no_commented_out_code: true newline_at_end_of_file: true naming_conventions: local_variable: '^[a-z][a-z_0-9]*$' @@ -27,24 +54,181 @@ checks: type_name: '^[A-Z][a-zA-Z0-9_]*$' exception_name: '^[A-Z][a-zA-Z0-9_]*Exception$' isser_method_name: '^(?:is|has|should|may|supports)' - more_specific_types_in_doc_comments: true + function_in_camel_caps: false fix_line_ending: true - fix_use_statements: - remove_unused: true - preserve_multiple: false - preserve_blanklines: false - order_alphabetically: true encourage_single_quotes: true encourage_postdec_operator: true + classes_in_camel_caps: false + blank_line_after_namespace_declaration: true avoid_todo_comments: true avoid_perl_style_comments: true avoid_multiple_statements_on_same_line: true + avoid_length_functions_in_loops: true avoid_fixme_comments: true + avoid_closing_tag: true + avoid_aliased_php_functions: true align_assignments: true - no_global_keyword: false - one_class_per_file: false + duplication: true + sql_injection_vulnerabilities: true + security_vulnerabilities: true + no_eval: true + switch_fallthrough_commented: true + phpunit_assertions: false + overriding_private_members: true + non_commented_empty_catch_block: true + no_short_variable_names: + minimum: '3' + no_short_method_names: + minimum: '3' + no_long_variable_names: + maximum: '30' + no_goto: true + avoid_usage_of_logical_operators: true + return_doc_comments: true + return_doc_comment_if_not_inferrable: true + parameter_doc_comments: true + param_doc_comment_if_not_inferrable: true + more_specific_types_in_doc_comments: false + fix_doc_comments: true + verify_property_names: true + verify_argument_usable_as_reference: true + verify_access_scope_valid: true + variable_existence: true + use_statement_alias_conflict: true + symfony_request_injection: true + precedence_mistakes: true + precedence_in_conditions: true + parameter_non_unique: true + no_property_on_interface: true + no_non_implemented_abstract_methods: true + no_duplicate_arguments: true + missing_arguments: true + method_calls_on_non_object: true + instanceof_class_exists: true + foreach_usable_as_reference: true + foreach_traversable: true + encourage_shallow_comparison: true + closure_use_not_conflicting: true + closure_use_modifiable: true + catch_class_exists: true + avoid_entity_manager_injection: true + avoid_conflicting_incrementers: true + assignment_of_null_return: true + argument_type_checks: true + avoid_unnecessary_concatenation: true + deprecated_code_usage: true side_effects_or_types: false + require_php_tag_first: true + php5_style_constructor: true + one_class_per_file: false + no_short_open_tag: true + no_global_keyword: true + no_exit: false avoid_superglobals: false + avoid_duplicate_types: true + avoid_corrupting_byteorder_marks: true + no_debug_code: true + code_rating: true -tools: - sensiolabs_security_checker: true +coding_style: + php: + indentation: + general: + use_tabs: true + size: 4 + switch: + indent_case: true + spaces: + before_parentheses: + function_declaration: false + closure_definition: false + function_call: false + if: true + for: true + while: true + switch: true + catch: true + array_initializer: false + around_operators: + assignment: true + logical: true + equality: true + relational: true + bitwise: true + additive: true + multiplicative: true + shift: true + unary_additive: false + concatenation: true + negation: true + before_left_brace: + class: true + function: true + if: true + else: true + for: true + while: true + do: true + switch: true + try: true + catch: true + finally: true + before_keywords: + else: true + while: true + catch: true + finally: true + within: + brackets: false + array_initializer: true + grouping: true + function_call: true + function_declaration: true + if: true + for: true + while: true + switch: true + catch: true + type_cast: false + ternary_operator: + before_condition: true + after_condition: true + before_alternative: true + after_alternative: true + in_short_version: true + other: + before_comma: false + after_comma: true + before_semicolon: false + after_semicolon: true + after_type_cast: true + braces: + classes_functions: + class: end-of-line + function: end-of-line + closure: end-of-line + if: + opening: end-of-line + always: true + else_on_new_line: false + for: + opening: end-of-line + always: true + while: + opening: end-of-line + always: true + do_while: + opening: end-of-line + always: true + while_on_new_line: false + switch: + opening: end-of-line + try: + opening: end-of-line + catch_on_new_line: false + finally_on_new_line: false + upper_lower_casing: + keywords: + general: lower + constants: + true_false_null: lower From 46b4485cf18181f0b75bba3e7852b73af9096ff3 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 3 May 2016 15:47:19 +0200 Subject: [PATCH 2/2] Minor code adjustments based on Scrutinizer feedback. --- class-tgm-plugin-activation.php | 48 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/class-tgm-plugin-activation.php b/class-tgm-plugin-activation.php index bc139813..7e8bac43 100755 --- a/class-tgm-plugin-activation.php +++ b/class-tgm-plugin-activation.php @@ -1015,11 +1015,11 @@ public function maybe_adjust_source_dir( $source, $remote_source, $upgrader ) { $subdir_name = untrailingslashit( str_replace( trailingslashit( $remote_source ), '', $source ) ); if ( ! empty( $subdir_name ) && $subdir_name !== $desired_slug ) { - $from = untrailingslashit( $source ); - $to = trailingslashit( $remote_source ) . $desired_slug; + $from_path = untrailingslashit( $source ); + $to_path = trailingslashit( $remote_source ) . $desired_slug; - if ( true === $GLOBALS['wp_filesystem']->move( $from, $to ) ) { - return trailingslashit( $to ); + if ( true === $GLOBALS['wp_filesystem']->move( $from_path, $to_path ) ) { + return trailingslashit( $to_path ); } else { return new WP_Error( 'rename_failed', esc_html__( 'The remote plugin package does not contain a folder with the desired slug and renaming did not work.', 'tgmpa' ) . ' ' . esc_html__( 'Please contact the plugin provider and ask them to package their plugin according to the WordPress guidelines.', 'tgmpa' ), array( 'found' => $subdir_name, 'expected' => $desired_slug ) ); } @@ -1186,7 +1186,7 @@ public function notices() { $line_template = '%s' . "\n"; if ( ! current_user_can( 'activate_plugins' ) && ! current_user_can( 'install_plugins' ) && ! current_user_can( 'update_plugins' ) ) { - $rendered = esc_html__( $this->strings['notice_cannot_install_activate'] ) . ' ' . esc_html__( $this->strings['contact_admin'] ); + $rendered = esc_html__( $this->strings['notice_cannot_install_activate'] ) . ' ' . esc_html__( $this->strings['contact_admin'] ); $rendered .= $this->create_user_action_links_for_notice( 0, 0, 0, $line_template ); } else { @@ -1452,13 +1452,13 @@ public function sanitize_key( $key ) { $key = preg_replace( '`[^A-Za-z0-9_-]`', '', $key ); /** - * Filter a sanitized key string. - * - * @since 2.5.0 - * - * @param string $key Sanitized key. - * @param string $raw_key The key prior to sanitization. - */ + * Filter a sanitized key string. + * + * @since 2.5.0 + * + * @param string $key Sanitized key. + * @param string $raw_key The key prior to sanitization. + */ return apply_filters( 'tgmpa_sanitize_key', $key, $raw_key ); } @@ -1501,7 +1501,7 @@ public function config( $config ) { * @since 2.0.0 * * @param array $install_actions Existing array of actions. - * @return array Amended array of actions. + * @return false|array Amended array of actions. */ public function actions( $install_actions ) { // Remove action links on the TGMPA install page. @@ -1871,7 +1871,7 @@ public function is_plugin_updatetable( $slug ) { if ( ! $this->is_plugin_installed( $slug ) ) { return false; } else { - return ( $this->does_plugin_have_update( $slug ) && $this->can_plugin_update( $slug ) ); + return ( false !== $this->does_plugin_have_update( $slug ) && $this->can_plugin_update( $slug ) ); } } @@ -2069,7 +2069,7 @@ public function show_tgmpa_version() { * * @since 2.4.0 * - * @return object The TGM_Plugin_Activation object. + * @return \TGM_Plugin_Activation The TGM_Plugin_Activation object. */ public static function get_instance() { if ( ! isset( self::$instance ) && ! ( self::$instance instanceof self ) ) { @@ -2275,7 +2275,7 @@ protected function _gather_plugin_data() { if ( ! empty( $upgrade_notice ) ) { $table_data[ $i ]['upgrade_notice'] = $upgrade_notice; - add_action( "tgmpa_after_plugin_row_$slug", array( $this, 'wp_plugin_update_row' ), 10, 2 ); + add_action( "tgmpa_after_plugin_row_{$slug}", array( $this, 'wp_plugin_update_row' ), 10, 2 ); } $table_data[ $i ] = apply_filters( 'tgmpa_table_data_item', $table_data[ $i ], $plugin ); @@ -3267,7 +3267,7 @@ public function run( $options ) { * * @param array $plugins The plugin sources needed for installation. * @param array $args Arbitrary passed extra arguments. - * @return string|bool Install confirmation messages on success, false on failure. + * @return array|false Install confirmation messages on success, false on failure. */ public function bulk_install( $plugins, $args = array() ) { // [TGMPA + ] Hook auto-activation in. @@ -3566,22 +3566,22 @@ public function add_strings() { /* translators: 1: plugin name, 2: error message. */ $this->upgrader->strings['skin_update_failed_error'] = __( 'An error occurred while installing %1$s: %2$s.', 'tgmpa' ); /* translators: 1: plugin name. */ - $this->upgrader->strings['skin_update_failed'] = __( 'The installation of %1$s failed.', 'tgmpa' ); + $this->upgrader->strings['skin_update_failed'] = __( 'The installation of %1$s failed.', 'tgmpa' ); if ( $this->tgmpa->is_automatic ) { // Automatic activation strings. - $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation and activation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); + $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation and activation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); /* translators: 1: plugin name. */ - $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'tgmpa' ) . ' ' . esc_html__( 'Show Details', 'tgmpa' ) . '.'; - $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations and activations have been completed.', 'tgmpa' ); + $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'tgmpa' ) . ' ' . esc_html__( 'Show Details', 'tgmpa' ) . '.'; + $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations and activations have been completed.', 'tgmpa' ); /* translators: 1: plugin name, 2: action number 3: total number of actions. */ $this->upgrader->strings['skin_before_update_header'] = __( 'Installing and Activating Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); } else { // Default installation strings. - $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); + $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'tgmpa' ); /* translators: 1: plugin name. */ - $this->upgrader->strings['skin_update_successful'] = esc_html__( '%1$s installed successfully.', 'tgmpa' ) . ' ' . esc_html__( 'Show Details', 'tgmpa' ) . '.'; - $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations have been completed.', 'tgmpa' ); + $this->upgrader->strings['skin_update_successful'] = esc_html__( '%1$s installed successfully.', 'tgmpa' ) . ' ' . esc_html__( 'Show Details', 'tgmpa' ) . '.'; + $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations have been completed.', 'tgmpa' ); /* translators: 1: plugin name, 2: action number 3: total number of actions. */ $this->upgrader->strings['skin_before_update_header'] = __( 'Installing Plugin %1$s (%2$d/%3$d)', 'tgmpa' ); }