Commit Graph

41 Commits

Author SHA1 Message Date
Vitaly Lavrov
613ccd7e05 BUG: get_variable for postgres never returns a value (#9710)
Because of this, the insert_or_update() method never uses the "INSERT INTO ... ON CONFLICT DO UPDATE SET ..." command, and the logs constantly show errors adding records to the message cache due to "duplicate key".
2024-11-24 14:18:06 +01:00
Michael Voříšek
6a5f9ee7ce Add override method attributes (#9272) 2024-06-02 15:57:56 +02:00
Michael Voříšek
a30e0ad438 Infer file/line location in rcube::raise_error() from backtrace (#9422)
* \n\s+'file' => __FILE__,

* \n\s+'line' => __LINE__,

* 'line' => __LINE__, 'file' => __FILE__,

* 'file' => __FILE__, 'line' => __LINE__,

* rest

* more

* improve cs

* more cs

* revert rcube_utils::preg_error changes

* impl file/line from backtrace

* Revert "revert rcube_utils::preg_error changes"
2024-04-21 11:48:35 +02:00
Aleksander Machniak
a1f39f47b7 Fix phpstan errors 2024-02-10 19:20:04 +01:00
Michael Voříšek
d18406a8bd Fix binary operator spaces CS (#9330)
* align_single_space_minimal for assign

* assign operators grouping is not supported by PHP CS Fixer

* binary_operator_spaces = single_space

* fix anonymous function on single line

* align comments manually
2024-02-02 07:53:34 +01:00
Michael Voříšek
4ee79b9e84 fix "explicit_string_variable" (#9315) 2024-01-22 08:05:59 +01:00
Michael Voříšek
b1a0067e5d Fix more CS (#9303)
* fix "class_attributes_separation"

* fix "ternary_to_null_coalescing"

* fix "no_extra_blank_lines"

* fix "php_unit_data_provider_name" - use snake_case

* fix remaining "function data_" manually

* move "php_unit_test_case_static_method_calls" to a better place in cnf

* fix 3.47.1 CS
2024-01-20 08:22:32 +01:00
Michael Voříšek
6a53a1d853 Fix CS (whitespace, visibility) (#9297)
* Fix "method_argument_space"

* Fix "control_structure_continuation_position"

* Fix "new_with_parentheses"

* Fix "blank_line_before_statement"

* Fix "visibility_required"

* Fix some "array_indentation"

* Fix some "array_indentation" - unify all "rcube::raise_error" calls

* rm useless eslint ignores and add rules counts

* sort eslint ignores

* fix eslint ignores grammar

* Revert "Fix "blank_line_before_statement""

* fix CS 3.46.0
2024-01-04 14:26:35 +01:00
Michael Voříšek
2643be3eaa Fix single quotes CS (#9283)
* Fix "single_quote"

* fix "escape_implicit_backslashes"

* fix typo from f363481c

* fix single quotes in JS

* fix some minor JS CS

* fix CS v3.45.0
2023-12-31 16:36:55 +01:00
Michael Voříšek
a9167a0d2f Fix "static_lambda" CS (#9276) 2023-12-20 20:01:00 +01:00
Michael Voříšek
e7d7e62146 Modernize more basic CS II (#9254)
* fix "integer_literal_case"

* fix "phpdoc_separation"

* fix "phpdoc_var_without_name"

* fix "operator_linebreak"

* fix "no_alias_language_construct_call"

* fix "list_syntax"

* fix "concat_space"

* fix "array_syntax"

* fix "binary_operator_spaces"

* fix "binary_operator_spaces" relaxed

* fix "phpdoc_types_order"

* fix "phpdoc_trim"

* fix "native_type_declaration_casing"

* fix "method_chaining_indentation"

* fix "phpdoc_no_package"

* fix "elseif"

* fix PHP CS Fixer config itself too

* fix "native_type_declaration_casing"
2023-12-17 13:14:45 +01:00
Michael Voříšek
ca8b17d191 Modernize more basic CS (#9258)
* fix "yoda_style"

* fix "is_null"

* rm useless rule ignores

* add full "PhpCsFixer:risky" ruleset

* fix "implode_call"

* fix "no_alias_functions"

* fix "array_push"

* fix "long_to_shorthand_operator"

* fix "ternary_to_elvis_operator"

* fix "logical_operators"

* fix "fopen_flags"

* rename "returns" phpdoc tags to "return"

* fix "php_unit_construct"

* fix "function_to_constant"

* fix "php_unit_data_provider_return_type"

* fix "php_unit_set_up_tear_down_visibility"

* some safe "string_length_to_empty"

* fix "phpdoc_align"

* fix "phpdoc_no_alias_tag"

* fix "trailing_comma_in_multiline"

---------

Co-authored-by: Aleksander Machniak <alec@alec.pl>
2023-12-17 09:51:11 +01:00
Michael Voříšek
a8707ae220 Fix and assert basic CS using CI (#9246)
* Assert CS using CI

* fix "single_blank_line_at_eof"

* fix "statement_indentation"

* fix "switch_case_semicolon_to_colon"

* fix "control_structure_braces"

* fix "statement_indentation"

* fix "no_whitespace_in_blank_line"

* fix "no_trailing_whitespace_in_comment"

* fix "no_trailing_whitespace"

* fix "single_space_around_construct"

* fix "spaces_inside_parentheses"

* fix "ternary_operator_spaces"

* fix "trim_array_spaces"

* fix "whitespace_after_comma_in_array"

* fix "cast_spaces"

* fix "unary_operator_spaces"

* fix "no_trailing_comma_in_singleline"

* fix "ordered_imports"

* fix "no_unused_imports"

* Check composer.json format

* fix CI job name

* file header comments are not phpdoc

* fix "phpdoc_indent"

* fix "braces_position"

* fix "phpdoc_types"

* fix "no_blank_lines_after_class_opening"

* fix "no_multiple_statements_per_line"

* fix "multiline_comment_opening_closing"

* fix "single_line_empty_body"

* fix "non_printable_character"

* fix "phpdoc_trim_consecutive_blank_line_separation"

* fix "include"

* fix "no_mixed_echo_print"

---------

Co-authored-by: Aleksander Machniak <alec@alec.pl>
2023-12-16 15:37:43 +01:00
Michael Voříšek
5425d1a84a Fix invalid phpdocs (#9252)
* fix missing return type in phpdoc
* fix "phpdoc_scalar"
* Fix phpdoc variable names typos
* fix wrong phpdoc tags
2023-12-10 16:20:50 +01:00
Aleksander Machniak
4ed6f65f94 Rename DNS option attr_emulate_prepares to emulate_prepares, update changelog
[skip ci]
2023-11-19 10:41:52 +01:00
Dominik Ulrich
d53db5e7e5 Add possibility to change ATTR_EMULATE_PREPARES via config file (#9213) 2023-11-19 10:37:35 +01:00
Aleksander Machniak
019801a430 Removed support for MS SQL Server and Oracle (#7854) 2022-09-11 11:01:03 +02:00
Aleksander Machniak
fa65a68389 Use ... oprator instead of func_get_args() for variadic functions 2022-04-27 19:21:00 +02:00
Aleksander Machniak
48fbf110af SQLite: Use foreign keys, require SQLite >= 3.6.19 (#8159) 2021-10-03 12:10:14 +02:00
Aleksander Machniak
626332d42a Don't use is_resource() where not needed 2021-10-02 08:40:56 +02:00
Aleksander Machniak
f2688ba492 Use ?? operator where applicable 2021-09-21 19:12:06 +02:00
Aleksander Machniak
8e8fe12082 Fix locked SQLite database for the CLI tools (#8035) 2021-08-01 11:27:06 +02:00
Aleksander Machniak
9faea49f82 Set PDO::ATTR_EMULATE_PREPARES=false for MySQL 2021-07-29 21:20:23 +02:00
Aleksander Machniak
5ac44fd4ed PHPDoc fixes 2021-02-28 11:58:27 +01:00
Aleksander Machniak
747bcd2ff4 Fix handling of table prefix and quoting in insert_or_update()
In all places we use this function the $table argument has already
been passed through table_name() method, i.e. it contains the prefix
and is quoted. So, we should not do this again.
2021-02-15 11:31:06 +01:00
Aleksander Machniak
f4ed1024dc PHP8 fixes, CS fixes, short array syntax, tests 2020-12-02 20:15:00 +01:00
Aleksander Machniak
007f9b81cf Lower SQLite version requirement 2020-11-28 16:05:19 +01:00
Aleksander Machniak
066faa1485 CS fixes, short array syntax, PHP8 fixes, tests
also fixed listing of table columns on SQLite database
2020-11-28 10:06:41 +01:00
Aleksander Machniak
545a1569f1 Steps -> Actions refactoring (#7688)
* Move action handling code to rcmail class
* Add rcmail_action class
* Add action aliases
* Get rid of $OUTPUT global
* Move some methods from rcmail to rcmail_action
* PHP8 compat. fixes
* Add framework for testing actions
* Fix obvious code mistakes
2020-11-01 11:25:38 +01:00
Aleksander Machniak
f95212d626 PHP8: More warnings fixed 2020-10-11 15:24:30 +02:00
Michael Stilkerich
67825e6320 MySQL: Don't reissue query after deadlock error (#7529)
When a deadlock error occurs, MySQL rolls back the _entire_ ongoing
transaction. The application would have to restart the transaction from
the beginning to retry if wanted.

Now roundcube in that case simply retries the statement that raised the
deadlock error, even though everything else in the transaction was
rolled back. This breaks transaction isolation, leaves the database in a
potentially inconsistent state (from the application's data consistency
model point of view), and does not indicate to the application there was
a problem at all to it may even continue executing other potentially
remaining statements of a transaction that has already been rolled back.

-> Remove the retries from roundcube. Retries have to be initiated by
the application if desired, not only retrying the last statement but the
entire transaction from the beginning.
2020-09-25 12:32:25 +02:00
Aleksander Machniak
d30f039e5a Use PDO::ATTR_CLIENT_VERSION when PDO::ATTR_DRIVER_VERSION does not exist (#7564) 2020-09-20 14:45:43 +02:00
Aleksander Machniak
77bc3f2427 Fix incorrect PDO::lastInsertId() use in sqlsrv driver (#7564) 2020-08-28 09:41:19 +02:00
Aleksander Machniak
a5c2b4360c Fixes in context of undefined variables, and code style 2020-08-15 12:13:31 +02:00
Aleksander Machniak
b7410ffe89 Use mySQL charset in connection string instead of SET NAMES (#7232)
And switch to utf8mb4 as it is what we're using right now in db schema.
2020-02-23 19:29:45 +01:00
Aleksander Machniak
1613f3ab4c INSERT OR REPLACE implementation (#6771)
For now with support in postgres and mysql databases.
For now used in rcube_cache, rcube_imap_cache and enigma plugin
2020-01-19 18:43:48 +01:00
Aleksander Machniak
545ea62dfc Fix bug where listing tables in PostgreSQL database with db_prefix didn't work (#7093) 2019-12-13 21:04:12 +01:00
Aleksander Machniak
1afa46d28d PHPDoc and CS fixes 2019-08-25 14:15:09 +02:00
Aleksander Machniak
a80c5569ab Added flag to disable server certificate validation via Mysql DSN argument (#6848) 2019-07-15 09:12:18 +02:00
Aleksander Machniak
57c67db029 Remove year(s) from copyright headers + some cleanup 2019-04-16 10:42:45 +02:00
Aleksander Machniak
1058924e21 Move some framework classes to sub-directories 2018-03-03 17:46:59 +01:00